さて、ここで少し間違えています。すでに1時間も無駄にしているので、皆さんの誰かが私を助けてくれることを願っています。
var a = ['left','top'],
x = [];
for(i=0;i<a.length;i++) {
x.Push({
a[i] : 0
});
}
var a
配列内の各キーに値をプッシュするにはどうすればよいですか?
私の失敗した試みを見ることができますが、うまくいけば、私が達成しようとしていることに対する洞察が得られます。
ブラケット表記を使用する必要があります。
var obj = {};
obj[a[i]] = 0;
x.Push(obj);
結果は次のようになります。
x = [{left: 0}, {top: 0}];
オブジェクトの配列ではなく、2つのプロパティを持つ1つのオブジェクトが必要な場合があります。
var x = {};
そして
x[a[i]] = 0;
これにより、x = {left: 0, top: 0}
。
次を使用できます。
オブジェクトの配列を作成するには:
var source = ['left', 'top'];
const result = source.map(arrValue => ({[arrValue]: 0}));
デモ:
var source = ['left', 'top'];
const result = source.map(value => ({[value]: 0}));
console.log(result);
または、配列の値から単一のオブジェクトを作成する場合:
var source = ['left', 'top'];
const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});
デモ:
var source = ['left', 'top'];
const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});
console.log(result);