Как удалить элемент из массива, хранящегося в объекте JSON? | угловой JS | объем - PullRequest
0 голосов
/ 02 мая 2018

У меня есть объект 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 голосов
/ 02 мая 2018

Лучше вывести ваше item_name в переменную, выполнить соединение и затем установить результат для свойства объекта следующим образом:

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;
}
0 голосов
/ 02 мая 2018

Вместо нескольких шагов вы можете сделать это одной строкой, как указано ниже.

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

0 голосов
/ 02 мая 2018

JSON - это метод форматирования строки ; если то, с чем вы имеете дело, не является строкой, назовите ее object или array.

Из вашего вопроса sellAccessories - это массив массивов - это не просто массив, поэтому вы не можете просто получить доступ к item_name через sellAccessories[0].item_name.

Объекты - это только ссылки на ячейки памяти , поэтому вы можете просто получить доступ к массиву и удалить соответствующее свойство:

const scope = { sellAccessories: [] };
scope.sellAccessories[0] = [{
  id: [178],
  item_name: ["Nescafe", "ggfftrww"],
  quantity: [1],
  total_price: [300]
}]
const { item_name } = scope.sellAccessories[0][0];
item_name.splice(item_name.indexOf('ggfftrww'));
console.log(item_name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...