如何用javascript将数组的一个元素复制到另一个数组



我有一个对象数组,我想把它的一些元素复制到另一个数组中,我该怎么做?

比方说:

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}
];

您可以使用filter创建一个新数组,其中包含与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)
或者,如果选定的已经作为数组存在,并且您想附加到它,则可以使用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)

您可以使用过滤器:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter.

const selected = original.filter(person => person.age > 22)

其他答案都很棒!这是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) );

最新更新