亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js給對象動態(tài)添加、設置、刪除屬性名與屬性值實例代碼

 更新時間:2022年11月25日 09:50:55   作者:卸載引擎  
由于項目需要常常會遇到為某一個對象動態(tài)添加屬性的情況,下面這篇文章主要給大家介紹了關于js給對象動態(tài)添加、設置、刪除屬性名與屬性值的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

1. 訪問對象屬性

js中訪問對象屬性一共有兩種方法:點獲取法和方括號獲取法。

let user = {     // 一個對象
  name: "John",  // 鍵 "name",值 "John"
  age: 30,        // 鍵 "age",值 30。列表中的最后一個屬性應以逗號結尾:便于我們添加、刪除和移動屬性
};
  • 使用點符號訪問屬性值 alert( user.name ); // John
  • 使用方括號訪問屬性值 alert( user[name]); // John

注意: 如果我們遍歷一個對象,我們獲取屬性的順序是和屬性添加時的順序相同嗎?

簡短的回答是:“有特別的順序”:整數(shù)屬性會被進行排序,其他屬性則按照創(chuàng)建的順序顯示。

2. 刪除對象屬性

使用delete關鍵字刪除對象屬性

delete user.age;
delete user[age];

3. 動態(tài)設置屬性

最常用的對象屬性獲取方法是點獲取法。

但是當我們遇到需要給對象動態(tài)添加屬性和屬性值時,點獲取法好像就不方便了,尤其是我們不知道屬性名的時候更麻煩。這時候,方括號獲取法就派上用場了。

let order={
    id:1,
    name:'xxxx',
}
// 如果是直接給新屬性賦值
order['logisticsNo']='xxxx';
 
// 如果添加的屬性為[],則可以先創(chuàng)建屬性值為空數(shù)組
order['logisticsNo']=[];
order['logisticsNo'].push(data); //注意數(shù)組才有push,不然會報錯
 
// 也可以使用變量名
let key='logisticsNo';
order[key]=[];
order[key].push(data);

計算屬性

當創(chuàng)建一個對象時,我們可以在對象字面量中使用方括號。這叫做 計算屬性

let fruit = prompt("Which fruit to buy?", "apple");

let bag = {
  [fruit]: 5, // 屬性名是從 fruit 變量中得到的
};

alert( bag.apple ); // 5 如果 fruit="apple"

計算屬性的含義很簡單:[fruit] 含義是屬性名應該從 fruit 變量中獲取。

所以,如果一個用戶輸入 “apple”,bag 將變?yōu)?{apple: 5}。

本質上,這跟下面的語法效果相同:

let fruit = prompt("Which fruit to buy?", "apple");
let bag = {};

// 從 fruit 變量中獲取值
bag[fruit] = 5;

我們可以在方括號中使用更復雜的表達式:

let fruit = 'apple';
let bag = {
  [fruit + 'Computers']: 5 // bag.appleComputers = 5
};

屬性存在判斷: “in” 操作符

相比于其他語言,JavaScript 的對象有一個需要注意的特性:能夠被訪問任何屬性。即使屬性不存在也不會報錯!

讀取不存在的屬性只會得到 undefined。所以我們可以很容易地判斷一個屬性是否存在:

let user = {};

alert( user.noSuchProperty === undefined ); // true 意思是沒有這個屬性

in 的左邊必須是 屬性名。通常是一個帶引號的字符串。

let user = { name: "John", age: 30 };

alert( "age" in user ); // true,user.age 存在
alert( "blabla" in user ); // false,user.blabla 不存在。

推薦直接使用in來判斷對象的屬性是否存在。

“for…in” 循環(huán)

let user = {
  name: "John",
  age: 30,
  isAdmin: true
};

for (let key in user) {
  // keys
  alert( key );  // name, age, isAdmin
  // 屬性鍵的值
  alert( user[key] ); // John, 30, true
}

1.檢查空對象

function isEmpty(obj) {
  for (let key in obj) {
    // 如果進到循環(huán)里面,說明有屬性。
    return false;
  }
  return true;
}

2.對象屬性求和

let salaries = {
  John: 100,
  Ann: 160,
  Pete: 130
};

let sum = 0;
for (let key in salaries) {
  sum += salaries[key];
}

alert(sum); // 390

3.將數(shù)值屬性值都乘以 2

// 在調用之前
let menu = {
  width: 200,
  height: 300,
  title: "My menu"
};

multiplyNumeric(menu);

// 調用函數(shù)之后
menu = {
  width: 400,
  height: 600,
  title: "My menu"
};

function multiplyNumeric(obj) {
  for (let key in obj) {
    if (typeof obj[key] == 'number') {
      obj[key] *= 2;
    }
  }
}

補充:括號表示法

這種方式類似于數(shù)組的寫法

const student = {
	name: '張三',
	age:  18,
	action: function eat () {alert('我喜歡吃')}
}

// 括號表示法(屬性值要加引號)
student['name'];
student['age'];
student['action']();	// 調用方法需要在外面加括號

另:這種方法個優(yōu)點:

我們想把傳遞過來的數(shù)據當做對象字面量的屬性名可以用括號表示法,所以括號表示發(fā)可以動態(tài)的添加屬性名和內容。

<input type="text" value="address">
		
<script>
	const student ={};
	let ipt = document.querySelector('input');
	let a= ipt.value;
	
	// 用點表示法不能將輸入框中的值當做屬性名來設置
	student.a = '北京';	// 存入的是a: '北京'
	// 用括號表示法可以
	student[a] = '北京'; // 存入的是	address: '北京'
	// ↑動態(tài)的將輸入框中的內容作為這個對象的值
</script>

總結

到此這篇關于js給對象動態(tài)添加、設置、刪除屬性名與屬性值的文章就介紹到這了,更多相關js對象動態(tài)添加設置刪除屬性名內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

最新評論