オブジェクトに空の配列である多数の属性を追加したいとします。私の実装は冗長であるようです。JSオブジェクトに効率的に追加できますか?
let obj = {};
obj.x = [];
obj.y = [];
obj.z = [];
...無限
は逆オブジェクトデ構造のような他の方法は、ありますか?
オブジェクトに空の配列である多数の属性を追加したいとします。私の実装は冗長であるようです。JSオブジェクトに効率的に追加できますか?
let obj = {};
obj.x = [];
obj.y = [];
obj.z = [];
...無限
は逆オブジェクトデ構造のような他の方法は、ありますか?
let obj = {};
for(let key of "xyz")
obj[key] = []
console.log(obj)
素晴らしい。 'const'や' let'をお勧めしますか? 'for( 'key1'、 'key2'、 'key3')のキーを受け取ります。 {obj [key] = []}' だから私は 'obj = {key1:[]、key2:[]、key3:[]}' – omgj
const変数が上書きされないようにする場合は – Endless
'const'と' let'は参照ではない値なので ' const obj = {}; obj.thing = '物事'; 'const obj = {}の間は問題ありません。 obj = {thing: 'thing'}; 'はエラーになります。 – jaybee
あなたはそれを再利用可能できる
var obj = {};
var keys = [ "x", "y", "z" ];
keys.forEach(function(val){
obj[ val ] = [];
});
を一行次に
var obj = ['x', 'y', 'z'].reduce((obj, key) => (obj[key] = [], obj), {})
でそれを行うためのちょうど別の方法を試すことができます
var fn = (obj, key) => (obj[key] = [], obj);
var dest = {};
var same = ['x', 'y', 'z'].reduce(fn, dest)
console.log(dest)
console.log(same === dest)
ウィッヒ名は空の配列を持っている必要がありますか? –