如何将值映射到键?

时间:2018-10-19 03:59:09

标签: javascript

映射将不接受键的点符号,如何将键从对象数组映射到新对象中的键?例如,我想转换:

这个

searchRsults = [{ _id: 'qEJBC9gED8knEKhHF',
  key: 'key1',
  value: 1 },
{ _id: 'KeoMTbpuCeuQMH8LJ',
  key: 'key2',
  value: 5 },
{ _id: 'Foy5pXbDbtLABmCxC',
  key: 'key3',
  value: 4 }
]

对此

[{ _id: 'qEJBC9gED8knEKhHF',
  key1: 1 },
  { _id: 'KeoMTbpuCeuQMH8LJ',
  key2: 5 },
  { _id: 'Foy5pXbDbtLABmCxC',
  key3: 4 }]

不起作用的示例...

get_settings = function(doc) {
                return {
                  doc.key: doc.value
                }
            }; 
currentUserSettings = searchResults.settings.map(get_settings);

1 个答案:

答案 0 :(得分:2)

您可以使用JS Array.Map原型实现此目的

只需使用方括号并传递值。

var data = [{
    _id: 'qEJBC9gED8knEKhHF',
    key: 'key1',
    value: 1
  },
  {
    _id: 'KeoMTbpuCeuQMH8LJ',
    key: 'key2',
    value: 5
  },
  {
    _id: 'Foy5pXbDbtLABmCxC',
    key: 'key3',
    value: 4
  }
]

var mappedData = data.map(function(item) {
	return {
  _id: item._id,
  [item.key]: item.value
  }
});

console.log(mappedData)