使用Javascript删除json数组中的元素

时间:2017-05-31 07:10:47

标签: javascript json

我想使用nodejs从json数组中删除元素。我的json文件match.json如下所示。

[{"id":"1234","time":"3"}]

从此我想删除第一个元素,以便json文件看起来像这样:

[]

我尝试了以下代码,它在控制台中打印一个空数组,但它没有从match.json文件中删除元素

for(var i=0;i<w;i++)
{
    for(var j=0;j<m;j++){
        if((words[i].id==match[j].id) && (words[i].time==match[j].time))
        {
            var f1=0;
            //var id1=match[j].id;
            var linkadd=words[i].link;   
            delete match[j];
            console.log(match);
        }
    }
}

6 个答案:

答案 0 :(得分:0)

使用 match.splice(i,1)代替删除匹配[i]

答案 1 :(得分:0)

var arr = JSON.parse(Match_json_data);

// remove 1st element
var indexOfItemToRemove = 0;
var noOfItemsToRemove = 1;
arr.splice(indexOfItemToRemove, noOfItemsToRemove);

参考:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/splice?v=control

答案 2 :(得分:0)

这应该有效:

let myJsonString = '[{"id":"1234","time":"3"}]';
let myEditedJsonString = JSON.stringify(JSON.parse(myJsonString).shift());

答案 3 :(得分:0)

删除元素..你可以使用splice ..元素将被删除。

    {
        var f1=0;
        //var id1=match[j].id;
        var linkadd=words[i].link;   
        match.splice(i, 1);
        console.log(match);
    }

如果您使用delete match[i],则列表将变为[undefined]。所以使用splice。

所以基本上删除不会删除元素,而是将元素设置为未定义。

答案 4 :(得分:0)

&#13;
&#13;
const items = [{"id":"1234","time":"3"}]

console.log('before removing item ==> ', items)

items.splice(0 /*index to be removed*/, 1/*no. of items to be removed*/)

console.log('after removing item ==> ', items)
&#13;
&#13;
&#13;

答案 5 :(得分:0)

如果您想要取出第一个元素并更新数组,请使用以下代码。

var arr =[{"id":"1234","time":"3"}]

arr.reverse().pop()

如果你想获得数组的一个子集,你可以对数组进行切片,但它不会更新数组,而是创建一个新的数组。

arr.slice(STARTING_ADDRESS,NO_OF_ELEMENTS_TO_SLICE)

注意:这将返回一个新数组,因此,如果要更新旧数组,则需要将其分配给旧数组。

arr = arr.slice(STARTING_ADDRESS,NO_OF_ELEMENTS_TO_SLICE)