Как вставить пользовательский индекс при вставке элемента в массив в javascript?

#javascript #jquery

#javascript #jquery

Вопрос:

Я хочу вставлять элементы в массив в цикле и хочу проиндексировать свой собственный для каждого элемента вместо индекса по умолчанию, предлагаемого самим массивом, чтобы я мог получить индекс позже, чтобы сопоставить его с другим объектом по этому индексу. Я хочу проиндексировать массив цен с index помощью функции обратного вызова in, как я могу это сделать?

 var calculation = []; 
var priceArr = []; 
angular.forEach($scope.ListCollection[i].lstCustomziation, function (value, index) {
  if ($scope.ListCollection[i].lstCustomziation[index].IsApplied == true) {
    calculation.push($scope.ListCollection[i].lstCustomziation[index]);
    priceArr.push($scope.ListCollection[i].lstCustomziation[index].price);
  }
});
 

Здесь я хочу пометить индекс как index из обратного вызова

 priceArr.push($scope.ListCollection[i].lstCustomziation[index].price);
 

Ответ №1:

Присваивайте значение, используя индекс, а не используя push :

 priceArr[index] = $scope.ListCollection[i].lstCustomziation[index].price;
 

Комментарии:

1. Разве это не $scope.ListCollection[i].lstCustomziation[index] то же value самое, что внутри функции? 🙂

2. @Jack: Да, хорошая мысль. priceArr[index] = value.price; работает так же. 🙂 Я оставлю ответ тем же, хотя слишком большое изменение исходного кода может запутать ответ на фактический вопрос.