我的数据看起来像
[{"letter": "a", "word" : "apple"}, {"letter": "b", "word":"ball"}, {"letter": "a", "word":"alpha"}, {"letter": "c", "word":"cat"}]
我想将其转换为
{"a":["apple", "alpha"], "b": ["ball"], "c":["cat"]}
答案 0 :(得分:1)
您可以为此使用reduce函数
const arr = [{"letter": "a", "word" : "apple"}, {"letter": "b", "word":"ball"}, {"letter": "a", "word":"alpha"}, {"letter": "c", "word":"cat"}]
const transformed = arr.reduce((acc, cur) => {
acc[cur.letter] = acc[cur.letter] || [];
acc[cur.letter].push(cur.word);
return acc;
}, {});
console.log(transformed);
答案 1 :(得分:0)
您的意思是这样的
const arr = [{"letter": "a", "word" : "apple"}, {"letter": "b", "word":"ball"}, {"letter": "a", "word":"alpha"}, {"letter": "c", "word":"cat"}];
let result = {};
for (let e of arr)
(result[e.letter] = result[e.letter] || []).push(e.word);
console.log(result)
答案 2 :(得分:-1)
基于更新的结果。下面是我的方法
var elements = [{"letter": "a", "word" : "apple"}, {"letter": "b", "word":"ball"}, {"letter": "a", "word":"alpha"}, {"letter": "c", "word":"cat"}]
output = {}
elements.forEach(function(e){
key = e['letter']
value = e['word']
if(output[key]){
output[key] = [...output[key], value];
}else{
output[key] = [value];
}
})
console.log(output);