[英]Delete a property from JavaScript object without using delete operator
我需要從對象中提取某些屬性並分配給新對象。 以傳統方式,我可以手動將對象屬性所需的內容分配給新對象的屬性。
目前我在原始對象上使用刪除運算符並創建一個新對象。
有沒有更好的方法來做到這一點。
您可以分解對象並選擇不需要的對象,然后將其余部分作為結果對象。
它用
{ [key]:_, ...result } = object; ^^^^^
解構分配與
{ [key]:_, ...result } = object; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
分配給新的變量名 (不再使用)和
{ [key]:_, ...result } = object; ^
{ [key]:_, ...result } = object; ^^^
var object = { a: 1, b: 2, c: 3 }, key = 'a', { [key]:_, ...result } = object; console.log(result);
使用ES6解構運算符,您可以
ler arr = [{id:1, name: foo}, {id:2, name: bar}]
arr.map({id, ...item} => {
return item
})
考慮您要刪除id屬性,以上代碼將刪除id屬性並返回包含name屬性的對象。
您必須通過復制舊屬性中的所有屬性來創建新對象,但要刪除的屬性除外:
const person = {
name: 'abc',
age: 25
};
console.log(person);
const age = 'age';
const newPerson = Object.keys(person).reduce((object, key) => {
if (key !== age) {
object[key] = person[key]
}
return object
}, {});
console.log(newPerson);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.