我正在使用Javascript从API获取数据。 我得到以下对象列表。
[
{name: 'Cat', value: 2, extra: 'data'},
{name: 'Dog', value: 3, extra: 'data'}
]
我正在尝试使用以下表单
[
cat: {value: 2},
dog: {value: 3}
]
return data.map((item) => ({
value: item.value
}));
答案 0 :(得分:2)
const result = {};
for(const {name, value} of array)
result[name] = { value };
一个普通的旧for循环就可以了。使用函数式编程,您必须使用reduce
将其简化为一个对象,map
始终返回一个数组。
const result = array.reduce((res, {name, value}) => ({ ...res, [name]: {value}}), {});
答案 1 :(得分:2)
var data = [
{name: 'Cat', value1: 2, value2: 3},
{name: 'Dog', value1: 3, value2: 4}
]
var result = data.map((item) => {
var name = item.name
delete item.name
//if you want to modify some property
item.value1 = item.value1 + "$"
return {[name]: {...item}}
})
console.log(result)

答案 2 :(得分:0)
您可以使用Object.assign()
和map()
方法返回对象作为结果。
const data = [{name: 'Cat', value: 2},{name: 'Dog', value: 3}]
const result = Object.assign({}, ...data.map(({name, value}) => ({[name]: {value}})))
console.log(result)