我有一個物件陣列,我想將它的一些元素復制到另一個陣列中,我該怎么做?
比方說:
original = [{name: "a", age: 20},
{name: "b", age: 25},
{name: "c", age: 30}
];
var k = 0;
for(var i = 0; i < original.lenght; i )
if(original[i].age > 22){
selected[k] = original[i]; ===> needs to change.
k ;
}
編輯:
我需要被選為:
selected = [{name: "b", age: 25},
{name: "c", age: 30}
];
uj5u.com熱心網友回復:
您可以使用過濾器創建一個新陣列,其中包含與您的 if 陳述句匹配的任何內容。
let original = [{name: "a", age: 20},
{name: "b", age: 25},
{name: "c", age: 30}
];
let min_age = 23;
let selected2 = original.filter((element) => element.age > min_age);
console.log(selected2)
或者,如果 selected 已經作為陣列存在并且您想附加到它,則可以使用 push。
let original = [{
name: "a",
age: 20
},
{
name: "b",
age: 25
},
{
name: "c",
age: 30
}
];
let min_age = 23;
let selected = [];
original.forEach(function(e) {
if (e.age > min_age) {
selected.push(e)
}
});
console.log(selected)
uj5u.com熱心網友回復:
您可以只使用過濾器:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter 。
const selected = original.filter(person => person.age > 22)
uj5u.com熱心網友回復:
其他答案都很棒!這是對它們的重構 TBH
let original = [{
name: "a",
age: 20
},
{
name: "b",
age: 25
},
{
name: "c",
age: 30
}
];
let selected = [];
original.filter( p => p.age > 22).forEach( p => selected.push(p) );
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/504512.html
上一篇:如果他的屬性匹配陣列中的所有專案(例如食譜的成分),則回傳物件
下一篇:合并多個物件(es5)
