В массиве объектов превратить значения объекта в пару ключ / значение - PullRequest
0 голосов
/ 04 августа 2020

Мне интересно использовать chartkick , поэтому мне нужно преобразовать объект JS в следующий формат:

var array = [{date:'01/01/2017',value1:200,value2:300,value3:400}, {date:'02/01/2017',value1:220,value2:330,value3:430},{date:'03/01/2017',value1:250,value2:330,value3:420}]

В следующий формат:

var arrayOne = [{'01/01/2017': 200}, {'02/01/2017': 220},{'03/01/2017':250}]

Любая помощь будет принята с благодарностью.

Ответы [ 5 ]

2 голосов
/ 04 августа 2020

Вы можете попробовать это

let sampleArray = [{date:'01/01/2017',value1:200,value2:300,value3:400}, {date:'02/01/2017',value1:220,value2:330,value3:430},{date:'03/01/2017',value1:250,value2:330,value3:420}]


   let finalArray = sampleArray.map(data => ({[data.date]:data.value1}))

console.log(finalArray)

Результат будет

[{01/01/2017: 200},{02/01/2017: 220},{03/01/2017: 250}]
2 голосов
/ 04 августа 2020

Используйте Array.prototype.map():

const src = [{date:'01/01/2017',value1:200,value2:300,value3:400}, {date:'02/01/2017',value1:220,value2:330,value3:430},{date:'03/01/2017',value1:250,value2:330,value3:420}],

      result = src.map(({date,value1}) => ({[date]: value1}))
      
console.log(result)
.as-console-wrapper{min-height:100%;}
1 голос
/ 04 августа 2020

Если вы хотите сделать это в al oop для каждого value1, value2, ...

var array = [{
  date: '01/01/2017',
  value1: 200,
  value2: 300,
  value3: 400
}, {
  date: '02/01/2017',
  value1: 220,
  value2: 330,
  value3: 430
}, {
  date: '03/01/2017',
  value1: 250,
  value2: 330,
  value3: 420
}]

const numberOfValues = 3;

for (let i = 1; i <= numberOfValues; i++) {
  const mappedArray = array.map(x => {
    const result = {};
    result[x.date] = x["value" + i.toString()];
    return result;
  });
  console.log(mappedArray);
}
1 голос
/ 04 августа 2020

Попробуйте следующее:

 var array = [{date:'01/01/2017',value1:200,value2:300,value3:400}, {date:'02/01/2017',value1:220,value2:330,value3:430},{date:'03/01/2017',value1:250,value2:330,value3:420}]
 
let final_array =  array.map(arr => {
    return {[arr.date] : arr.value1};
 })

console.log(final_array)
1 голос
/ 04 августа 2020
 var array = [{date:'01/01/2017',value1:200,value2:300,value3:400}, {date:'02/01/2017',value1:220,value2:330,value3:430},{date:'03/01/2017',value1:250,value2:330,value3:420}];
    var mappedArray = array.map(item => {
    return {
        [item.date]: item.value1
    }
})

l oop массив и сопоставьте его с новой структурой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...