web-dev-qa-db-ja.com

JavaScript配列プッシュキー値

さて、ここで少し間違えています。すでに1時間も無駄にしているので、皆さんの誰かが私を助けてくれることを願っています。

var a = ['left','top'],
    x = [];

for(i=0;i<a.length;i++) {
    x.Push({
        a[i] : 0
    });
}

var a配列内の各キーに値をプッシュするにはどうすればよいですか?

私の失敗した試みを見ることができますが、うまくいけば、私が達成しようとしていることに対する洞察が得られます。

26
daryl

ブラケット表記を使用する必要があります。

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}

47
Felix Kling

次を使用できます。


オブジェクトの配列を作成するには:

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);
2
Mohammad Usman