如何从存储在json对象中的数组中删除一个元素? |角js |范围

时间:2018-05-02 00:07:59

标签: javascript angularjs scope

我有以下结构的json对象:

$scope.sellAccessories[0]=[
{id: [178], item_name: ["Nescafe","ggfftrww"], quantity: [1], total_price:[300]}
]

我的问题是我想在将json对象发送到服务器端之前从数组中删除一些元素。

我尝试使用拼接功能删除数组item_name中的第二个元素 ggfftrww

var index = $scope.sellAccessories[0].item_name.indexOf($scope.sellAccessories[0].item_name[1]);

if (index > -1) {
   $scope.sellAccessories[0].item_name.splice(index, 1);
}

但它不起作用。

提前感谢这是停止我的工作流程。

3 个答案:

答案 0 :(得分:1)

JSON是一种格式化字符串的方法;如果您要处理的内容不是字符串,请将其称为objectarray.

根据您的问题,sellAccessories数组 - 它不仅仅是一个普通数组,因此您不能只通过{{1}访问item_name }。

对象只是对内存位置的引用,因此您只需访问该数组并删除相应的属性:

sellAccessories[0].item_name

答案 1 :(得分:1)

最好将item_name输出到变量,执行拼接,然后将结果设置为object属性,如下所示;

var itemToChange=$scope.sellAccessories[0].item_name;
var index = itemToChange.indexOf(itemToChange[1]);

if (index > -1) {
   itemToChange.splice(index, 1);
   $scope.sellAccessories[0].item_name=itemToChange;
}

答案 2 :(得分:1)

您可以使用单行执行此操作,而不是执行多个步骤。

$ scope.sellAccessories [0] = $ scope.sellAccessories [0] [' item_name']。splice(0,1);