成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

十個處理 JavaScript 對象的實用技巧!

開發 后端
我們可以通過 {} 來創建空對象。 然而,通過方法中創建的對象,Proto、HasOwnProperty等對象方法仍然是存在的,這是因為使用 {} 將創建一個繼承自 Object 類的對象。

本文來分享 10 個開發技巧,可以使用這些技巧來高效地操作和使用 JavaScript 對象。

一、創建一個絕對空的對象Summer IS HERE

我們可以通過 {} 來創建空對象。 然而,通過方法中創建的對象,proto、hasOwnProperty等對象方法仍然是存在的,這是因為使用 {} 將創建一個繼承自 Object 類的對象。

如果需要創建一個絕對空的對象,最好使用 Object.create(null),它將創建一個不從任何對象繼承且沒有屬性的對象。

let vehical = Object.create(null);

// vehicle.__proto__ === "undefined"  ?

二、使用擴展運算符組合兩個對象Summer IS HERE

在許多情況下,需要組合來自不同來源的兩個或多個數據集。

最常用的方法是使用 Object.assign()。該方法需要多個參數。 第一個是分配的對象,其余參數是需要組合的對象。

const name = { id: '1234', name: 'Charuka'};
const university = { id: '1234', university: 'Harvard'};
const PersonalDetails = Object.assign({}, name, university);

console.log(PersonalDetails); 
// { id: '1234', name: 'Charuka', university: 'Harvard' }

使用擴展運算符進行組合更方便,只需展開任意數量的對象,并將它們組合成一個對象即可。

const PersonalDetails = { ...name, ...university };

console.log(PersonalDetails); 
// { id: '1234', name: 'Charuka', university: 'Harvard' }

需要注意,如果存在重復的鍵,那后面的會將覆蓋前面對象的鍵。

三、從對象獲取鍵和值的列表Summer IS HERE

在開發過程中,有時需要從對象中僅獲取鍵或僅獲取值。可以通過以下兩個內置函數來實現:

  • Object.keys():用于獲取鍵列表。
  • Object.values():用于獲取值列表。
const vehicle = { brand: 'BWM', year: 2022, type: 'suv'};
//獲取鍵
console.log(Object.keys(vehicle)); // [ 'brand', 'year', 'type' ]
//獲取值
console.log(Object.values(vehicle)); // [ 'BWM', 2022, 'suv' ]

四、檢查屬性Summer IS HERE

使用 for-in 循環時,檢查對象的屬性有助于避免迭代對象原型中的屬性。可以使用 Object.hasOwnProperty()進行檢查,而不是使用 if-else。

const vehicle = { brand: 'BWM', year: 2022, type: 'suv'};
for (var item in vehicle) {  
    if (vehicle.hasOwnProperty(item)) { 
        console.log(item);                 
    };  
};
// brand
// year
// type

五、克隆對象Summer IS HERE

假設有一個對象并且需要復制它以更改其值,但原始對象應該保持不變。可以通過以下方法來實現。

第一種方法是使用 Object.assign(),它將所有可枚舉屬性的值從一個對象復制到另一個對象。

const initialVehicle = { brand: 'BWM', year: 2022, type: 'suv'};
const secondaryVehicle = Object.assign({}, initialVehicle);
console.log(secondaryVehicle); // { brand: 'BWM', year: 2022, type: 'suv'};

第二種方法是使用 JSON.parse() 復制對象。

var initialVehicle = { brand: 'BWM', year: 2022, type: 'suv'};
var secondaryVehicle = JSON.parse(JSON.stringify(initialVehicle));
console.log(secondaryVehicle); // { brand: 'BWM', year: 2022, type: 'suv'};

六、從對象中選擇特定數據Summer IS HERE

針對對象中的特定鍵(key),可以使用不同的方法進行選擇。選擇方法的選擇取決于希望對這些值進行的操作。下面的示例展示了一種有條理的方式從對象中選擇數據,并可以選擇所需的鍵,并將它們提取到一個新的對象中。

const selectObj = (obj, items) => { 
  return items.reduce((result, item) => {
    result[item] = obj[item]; 
    return result;
  }, {});
};
const vehicle = { brand: 'BWM', year: 2022, type: 'suv'};
const selected = selectObj(vehicle, ['brand', 'type']);
console.log(selected); // { brand: 'BWM', type: 'suv' }

七、從對象中刪除鍵Summer IS HERE

有時我們需要從對象中刪除特定的鍵及其值。最合適的方法是編寫一個可重用的刪除方法,該方法將一個對象和要刪除的鍵列表作為輸入。 然后循環遍歷要刪除的每個鍵并將其從對象中刪除。

const remove = (object, removeList = []) => {
  const result = { ...object };
  removeList.forEach((item) => {
    delete result[item];
  });
  return result;
}

const vehicle = { brand: 'BWM', year: 2022, type: 'suv'}

const itemRemoved = remove(vehicle, ['year']);
console.log(itemRemoved); // Result { brand: 'BWM', type: 'suv' }

八、將對象數據拉入數組Summer IS HERE

在某些情況下,我們需要將對象數據拉入數組中,例如下拉菜單。可以使用 Object.entries() 函數,該函數將一個對象作為其第一個參數并返回一個數組。

返回的結果是一個二維數組。內部數組將有兩個值:第一個是鍵,第二個是值。

const vehicle = { brand: 'BWM', year: 2022, type: 'suv'}
console.log(Object.entries(vehicle)); 
// [ [ 'brand', 'BWM' ], [ 'year', 2022 ], [ 'type', 'suv' ] ]

九、循環訪問 JavaScript 對象Summer IS HERE

JavaScript 中有多種方法可用于循環訪問對象。

第一種方法是使用 Object.entries(),該函數可以避免查找原始對象中的每個值。

const vehicle = { brand: 'BWM', year: 2022, type: 'suv'}
Object.entries(vehicle).forEach(
    ([key, value]) => console.log(key, value)
);
// brand BWM
// year 2022
// type suv

作為一種更好、更清晰的方法,可以使用 Object.entries() 進行對象解構。

const vehicle = { brand: 'BWM', year: 2022, type: 'suv'}
for (const [key, value] of Object.entries(vehicle)) {
    console.log(key, value);
}
// brand BWM
// year 2022
// type suv

十、有條件地向對象添加屬性Summer IS HERE

通常,開發人員使用 if-else 來有條件地向對象添加新元素。 然而,最簡單的方法是使用對象解構和擴展運算符。

const type = { type: 'suv' };
const vehicle = {
  brand: 'BMW',
  year: 2022,
  ...(!type ? {} : type)
}
console.log(vehicle); //{ brand: 'BMW', year: 2022, type: 'suv' }

同樣,使用不同的條件,可以向對象添加任意數量的元素。

責任編輯:姜華 來源: 前端充電寶
相關推薦

2023-10-16 07:55:15

JavaScript對象技巧

2024-11-26 14:18:44

Python代碼技巧

2024-11-28 09:51:09

Python密碼信息安全

2025-05-29 08:35:39

Python代碼開發

2023-10-23 14:14:10

SQL數據庫

2025-03-03 00:15:00

JavaScript開發效率

2011-05-19 13:15:44

PHP

2024-03-04 16:32:02

JavaScript運算符

2023-06-14 15:51:48

JavaScript

2024-05-23 11:53:24

Python代碼異常處理

2011-06-01 09:59:52

2025-06-03 09:06:20

2024-09-23 00:00:00

數據庫場景Entity

2024-12-02 14:28:17

JavaScriptWeb開發

2023-03-24 16:41:36

Pandas技巧數據處理

2024-01-07 20:14:18

CSS開發工具

2023-04-17 16:19:32

編程語言JavaScript開發

2023-02-09 16:15:27

JavaScript編程語言字符串

2024-12-03 14:33:42

Python遞歸編程

2019-10-12 15:42:36

CSS代碼前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: cao视频| 九九热精品视频 | 视频一区 亚洲 | 亚洲三级av| 国产一区二区在线视频 | 久久av网 | 午夜精品视频一区 | 国产精品久久久久久久久久久久久久 | 欧美日韩国产不卡 | 欧美日在线 | 久在线 | 欧美一区二区三区在线看 | 99热碰| 久久狠狠 | 精品一区二区在线视频 | 狠狠久 | 拍拍无遮挡人做人爱视频免费观看 | 久久精品 | 婷婷不卡| 欧美精品一区二区三区四区五区 | 久久国内精品 | 97人人爱 | avtt国产| 四虎成人精品永久免费av九九 | 国产高清免费 | 久久国产一区二区 | 日本精品视频 | 国产成人jvid在线播放 | 亚洲成人日韩 | 欧美专区日韩 | 国产精品久久久久999 | 国产欧美精品一区二区三区 | 日韩免费视频一区二区 | 日韩一区二区av | 日韩一区二区福利视频 | 国产成人精品免费 | 亚洲精品一区二区 | 亚洲精品一级 | 成人免费视频观看 | 精品国产精品三级精品av网址 | 99视频久|