我有:
[
{ name: H, value1: 10, value2: 40},
{ name: W, value1: 20, value2: 50},
{ name: S, value1: 30, value2: 60}
]
我需要:
{
h: {value1: 10, value2: 40},
w: {value1: 20, value2: 50},
s: {value1: 30, value2: 60},
}
對不起這個愚蠢的問題。我是學生。
uj5u.com熱心網友回復:
用這個:
function getObj(arr) {
return arr.reduce((p,next)=> {
const {name, ...left} = next;
p[name]=left;
return p;
}, {})
}
uj5u.com熱心網友回復:
let test = [
{ name: 'H', value1: 10, value2: 40},
{ name: 'W', value1: 20, value2: 50},
{ name: 'S', value1: 30, value2: 60}
]
let test2 = {}
test.forEach(v => {
test2[v.name] = v
delete test2[v.name].name
})
uj5u.com熱心網友回復:
const arr = [
{ name: "H", value1: 10, value2: 40},
{ name: "W", value1: 20, value2: 50},
{ name: "S", value1: 30, value2: 60}
]
const obj = arr.reduce((o,item) => {
const key = item.name
delete item.name
o[key] = {...item}
return o
},{});
console.log(obj)
uj5u.com熱心網友回復:
你可以這樣做
const data = [
{ name: 'H', value1: 10, value2: 40},
{ name:'W', value1: 20, value2: 50},
{ name: 'S', value1: 30, value2: 60}
]
const result = data.reduce((res, {name, ...rest}) => {
res[name.toLowerCase()] = rest
return res
}, {})
console.log(result)
uj5u.com熱心網友回復:
const input = [
{ name: "H", value1: 10, value2: 40 },
{ name: "W", value1: 20, value2: 50 },
{ name: "S", value1: 30, value2: 60 },
];
const output = input.reduce((accumulator, currentValue) => {
const { name, ...rest } = currentValue;
return {
...accumulator,
[name.toLowerCase()]: rest,
};
}, {});
// {
// h: { value1: 10, value2: 40 },
// w: { value1: 20, value2: 50 },
// s: { value1: 30, value2: 60 },
// };
uj5u.com熱心網友回復:
function array2object(array, key = 'name') {
return array.reduce((object, element) => ({ ...object, [element[key]]: (() => { delete element[key]; return element })() }), {});
}
const result = array2object(
[
{ name: 'H', value1: 10, value2: 40 },
{ name: 'W', value1: 20, value2: 50 },
{ name: 'S', value1: 30, value2: 60 }
]
);
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/458858.html
標籤:javascript
