我有一个函数,它从数组中拼接数据。

    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);

10-05 21:03
查看更多