简体   繁体   English

对象的键/值对数组

[英]Array of key/value pairs to object

I want to change this 我想改变这个

var data = [60, rose, 40, rose1, 20, rose2];

to this 对此

var data: [{
  value: 60,
  name: 'rose'
}, {
  value: 40,
  name: 'rose1'
}, {
  value: 20,
  name: 'rose2'
}];

You can do it this way: 你可以这样做:

 var data = [60, "rose", 40, "rose1", 20, "rose2"] var dataObj = [] for (var i = 0; i < data.length; i+=2) { dataObj.push({ value: data[i], name: data[i + 1] }) } // Demo Output document.write(JSON.stringify(dataObj)) 

Just for the completeness, works even for uneven items: 只是为了完整性,即使对于不均匀的物品也是如此:

 var data = [60, "rose", 40, "rose1", 20, "rose2", 30], object = data.reduce(function (r, a, i, d) { if (i % 2) { r[d[i - 1]] = a; } return r; }, {}); document.write('<pre>' + JSON.stringify(object, 0, 4) + '</pre>'); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM