如何在JavaScript中移除对象的一部分

3
这是我的代码:
var data = [];
$("#btn").click(function(){
    total++;
    data.push({        
        id : total,
        "cell": [
            "val1",
            "val2",
            "val3",
        ]
    });
});

每当用户单击btn按钮时,我会向数据对象添加一些值。现在我的问题是如何删除带有id = X的那部分内容。
4个回答

8

只需要使用以下代码
x = {id1: "some value"}
delete x.id1

大概就是这样。


1

你可以在位置 X 使用 .splice() 方法

var data = [{id : total, "cell" : ["val1", "val2", "val3"]}[, ...repeat];

var X = 0; // position to remove
data.splice(X,1);

扩展:

for (var i=data.length-1; 0 < i; i--) {
    if (data[i].id == X) {
        data.splice(X,1);
        break;
    }
}

1
const {  whatIDontWant, ...theRest } = everything;
return {theRest};

让左边等于右边,由于在展开时对象属性的唯一性,whatIDontWant被排除在theRest之外。因此,theRest是一个没有不想要的属性的对象。


谢谢您的回答。您能解释一下这是如何工作的吗? - ggorlen

0

这里有一个替代的想法。使用id作为对象中的键:

var data = {};

$("#btn").click(function(){
    total++;
    data[total] = {
        cell: [
            "val1",
            "val2",
            "val3"
        ]
    };
});

然后,要删除具有特定id的对象,您可以执行以下操作:

delete data[id];

或者

data[id] = null;

只需将其设置为null。

这样,您就可以从数组中删除复杂性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接