1

次のような 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])が、純粋なオブジェクトとして欲しいです。

4

1 に答える 1

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);

于 2013-12-06T16:30:58.957 に答える