Javascript从id对象中删除数组

时间:2018-06-10 19:02:23

标签: javascript arrays object

抱歉我的英语不好。如果我有一个数组:

const myobj = [
{
    id: 1,
    name: 'First...'
},
{
    id: 2,
    name: 'Second...
}];

如何删除id 2对象?仅使用第一个对象保留数组。我应该使用哪些功能?提前谢谢。

找到解决方案:

function removeByKey(array, params){
    array.some(function(item, index) {
        if(array[index][params.key] === params.value){
            array.splice(index, 1);
            return true;
        }
        return false;
    });

    return array;
}

然后

removeByKey(myobj, {
    key: 'id',
    value: 2
})

http://jsforallof.us/2015/07/08/remove-object-by-key-from-array/

2 个答案:

答案 0 :(得分:0)

使用Array.prototype.filter根据提供的条件生成新数组。

const myobj = [{ id: 1, name: 'First...' }, { id: 2, name: 'Second...' }];

console.log(myobj.filter(v => v.id !== 2));

同样,您可以使用Array.prototype.reduce

const myobj = [{ id: 1, name: 'First...' }, { id: 2, name: 'Second...' }];

console.log(myobj.reduce((acc, v) => v.id !== 2 ? acc.concat(v) : acc, []));

答案 1 :(得分:0)

首先,你有一个数组,而不是myobj中的一个对象,你可以做的很多方法就是通过过滤删除项目:

const myFilteredArray = myobj.filter(i => i.id !== 2);

请参阅javascript filter function