Sri*_*aru 0 javascript arrays ecmascript-6
我有以下数组
data = [
{ name: 'foo', type: 'fizz', val: 9 },
{ name: 'boo', type: 'buzz', val: 3 },
{ name: 'bar', type: 'fizz', val: 4 },
{ name: 'car', type: 'buzz', val: 7 },
];
Run Code Online (Sandbox Code Playgroud)
我该怎么做
{
9: 'foo',
3: 'boo,
4: 'bar',
7: 'car'
}
Run Code Online (Sandbox Code Playgroud)
在ES6中。
提前致谢!!
使用Array#forEach。
var data = [ { name: 'foo', type: 'fizz', val: 9 }, { name: 'boo', type: 'buzz', val: 3 }, { name: 'bar', type: 'fizz', val: 4 }, { name: 'car', type: 'buzz', val: 7 }, ],
res = {};
data.forEach(v => res[v.val] = v.name);
console.log(res);Run Code Online (Sandbox Code Playgroud)
使用Array#reduce。
var data = [ { name: 'foo', type: 'fizz', val: 9 }, { name: 'boo', type: 'buzz', val: 3 }, { name: 'bar', type: 'fizz', val: 4 }, { name: 'car', type: 'buzz', val: 7 }, ],
res = data.reduce(function(s,a){
s[a.val] = a.name;
return s;
}, {});
console.log(res);Run Code Online (Sandbox Code Playgroud)