我有一个函数,它从数组中拼接数据。
function findAndRemove(array, property, value) {
array.forEach(function(result, index) {
if(result[property] === value) {
//Remove from array
array.splice(index, 1);
}
});
}
使用相同的功能,如何捕获从数组拼接的数据。
可以说
var ar = [1, 2, 3, 4, 5];
如果我要拼接
1,2
,我将与var ar = [3, 4, 5];
从这个我希望另一个数组与此输出
var ar1 = [1, 2];
编辑:
我需要对@Shivaji Varma建议的解决方案进行哪些更改,以使拼接的数据不会从数组
list
中删除,而只是复制到var removedItems = []
中。我尝试将其推回数组,但数据集没有变化。
我也尝试过合并两个数组,但是即使这样也无法正常工作。
最佳答案
您可以像下面编辑的代码一样将现有数组克隆到newarray
。这样,在调用函数时,初始数组list
保持不变。
var list = [
{ id : 10,Name : 'abc' },
{ id : 20,Name : 'xyz' },
{ id : 30,Name : 'mno' }
];
var removedItems = [];
function findAndRemove(array, property, value){
var newarray = [...array]
var index = newarray.map(function(x){ return x[property]; }).indexOf(value);
var removedItem = newarray.splice(index,1);
removedItems.push(removedItem);
}
findAndRemove(list, 'id', 20);
console.log(list);
console.log(removedItems);