gpt4 book ai didi

javascript - 使用 angularjs 从 json 文件中删除项目

转载 作者:行者123 更新时间:2023-11-28 11:32:18 25 4
gpt4 key购买 nike

我在尝试从 Json 文件中删除项目时浪费了很多时间

这是我的 json 文件

 {
"count": 3,
"data": [
{
"id": "1",
"raison": "ABS",
"email": "abs@abs.com",
"tel": "021269999999"
},
{
"id": "3",
"raison": "PODL",
"email": "abs@abs.com",
"tel": "021269999999"
}, {
"id": "5",
"raison": "dDMS",
"email": "abs@abs.com",
"tel": "021269999999"
}
]
}

在 Controller 中我有这样的

 $scope.deleteRow = function() {
var _id = 3;
$scope.datas = JSON.stringify($scope.clients["data"]);
$scope.datas.splice(_id,1);
};

所以我给出了我想删除的_id,但我得到了这个错误$scope.datas.splice splice not a function,我尝试了一个简单的文件,它工作得很好[“aaa” ,"bob,"ccc"] 使用 indexof() 和拼接,但在此文件中 json 非 :(

javascript如何知道/比较正确的id?

所以有人帮助我,非常感谢。

最佳答案

您收到该错误是因为 splice()是一个数组方法,而您的 datas 对象是一个字符串。您可能会将其与 slice() 混淆方法,它确实是为字符串定义的。

因此,正如 cale_b 指出的那样,无需对 JSON 对象进行字符串化。将其保留为数组将为您提供更多功能。例如,如果你想删除clients.data中的第二个元素,你可以这样写:

$scope.clients["data"].splice(1, 1);

如果您想根据 id 属性删除值,而不是根据 data 数组中对象的位置,您可以使用indexOf()find()方法,像这样:

$scope.clients["data"].splice(
$scope.clients["data"].indexOf(
$scope.clients["data"].find(function(e) {
return e.id == 2;
})), 1);

关于javascript - 使用 angularjs 从 json 文件中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39280873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com