Как сохранить значения из одного списка в другой список по определенному атрибуту? - PullRequest
0 голосов
/ 08 июля 2019

У меня есть два списка. Я хочу сохранить данные из обоих списков в один список в angularjs.

Я пытался использовать цикл for для присвоения значений, но, похоже, он не работает.

$scope.CustomerSize_Value = [];
$scope.CustSizeAttrib_Id = [];

$scope.StoreAttributeList = {
  'customerSizeAttribute_Id': 0,
  'customerSize_Value': "",
};

Здесь я хочу сохранить значения от CustSizeAttrib_Id до StoreAttributeList.customerSizeAttribute_Id и значения от CustomerSize_Value до StoreAttributeList.customerSize_Value.

Я хочу, чтобы StoreAttributeList был похож на:

[
  {customerSizeAttribute_Id:1, customerSize_Value:"Hello"},
  {customerSizeAttribute_Id:3, customerSize_Value:"Info"},
  {customerSizeAttribute_Id:65, customerSize_Value:"Foo"}
]

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

при условии, что оба массива имеют одинаковый размер, вы можете просто использовать циклы для создания нового массива объектов

$scope.CustomerSize_Value = [];
$scope.CustSizeAttrib_Id = [];

$scope.StoreAttributeList = $scope.CustomerSize_Value.map((size, index) =>
{
  'customerSizeAttribute_Id': scope.CustSizeAttrib_Id[index],
  'customerSize_Value': size,
};```
0 голосов
/ 08 июля 2019

Это звучит как по сути двойная проблема цикла.Предполагая, что в ваших массивах нет пробелов и они имеют одинаковую длину, вы можете сделать что-то вроде этого с помощью Reduce, и вы должны получить искомый массив объектов.

const size = [1,2,3];
const attr = ['a', 'b', 'c'];

const reduced = (_size, _attr) => {

    return _size.reduce((prev, next, index) => {
        prev.push({
            s: next, a: _attr[index]
        });
        return prev;
    }, []);

}

console.log(reduced(size, attr));

// [{s: 1, a: "a"}, {s: 2, a: "b"}, {s: 3, a: "c"}] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...