将数组拆分成对并打包到对象中

时间:2013-12-06 16:10:47

标签: javascript arrays split object-notation

我有一个带有CSS文本声明的数组,如下所示:['display: none ', 'opacity: 0.1', ' color: #ff0000']

我想将它们分成对象键/值表示法,所以它最终会像这样:

{
  display: 'none',
  opacity: 0.1,
  color: '#ffffff'
}

编辑:我有一个工作错误的例子,但它看起来过于复杂,并没有达到目的(d'oh)。你有工作吗?

cssStyleDeclarations.map(function(item) {
  var x = item.split(':');
  var ret = {};
  ret[x[0].trim()] = x[1].trim();

  return ret;
});

它将其作为数组返回,并为每个条目([Object, Object, Object])添加一个对象,但我希望它作为纯对象。

1 个答案:

答案 0 :(得分:2)

结帐Array.prototype.reduce()

var input = ['display: none ', 'opacity: 0.1', ' color: #ff0000'];

var css = input.reduce((p, c) => {
  var x = c.split(':');
  p[x[0].trim()] = x[1].trim();
  return p;
}, {});

console.log(css);