Как изменить [] с помощью {} в моем объекте массива - PullRequest
0 голосов
/ 10 октября 2018

Я получаю эти данные из API

{"city":"New York","type":["0","1","9"]}

Мне нужно преобразовать таким образом:

{"type":{0:true,1:true,9:true},...}

Я пытаюсь с угловым foreach таким образом

var tmparr = [];
angular.forEach( $scope.path.type, function (value, key)  {
    tmparr.push(value + ":true")
});
$scope.checkfilters.type = tmparr

но таким образом у меня есть этот результат, и это не то, что мне нужно

{"business_type":["0:true","1:true","9:true"]} 

Я не знаю, как заменить [] на {} в моем массиве

ЕслиЯ пытаюсь установить var tmparr = {} У меня есть неопределенная ошибка в функции push

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Вы можете пройтись по типу, а затем скопировать значения и присвоить ему значение true.

var original = {"city":"New York","type":["0","1","9"]};
var copy = {};
for(var i in original.type){
   copy[original.type[i]] = true;
}

console.log(copy);
0 голосов
/ 10 октября 2018

Вы также можете использовать reduce с аккумулятором объекта:

var data = {"city":"New York","type":["0","1","9"]}

const result = data.type.reduce((r,c) => (r[c] = true, r), {})

console.log(result)
0 голосов
/ 10 октября 2018

Использовать скобочный синтаксис

var tmparr = {};
angular.forEach( $scope.path.type, function (value, key)  {
    tmparr[value] = true;
});
$scope.checkfilters.type = tmparr;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...