2017-09-11 11 views
-1

javacriptで配列の複数のキーを設定したい、javascriptバッチキーを追加

このコードはとても醜いものでした。これだけが正しく機能することができます。

var listData = []; 
 
listData['today'] = []; 
 
listData['data1'] = []; 
 
listData['data2'] = []; 
 
listData['data3'] = []; 
 
listData['data4'] = []; 
 
listData['data5'] = []; 
 
listData['data6'] = []; 
 
listData['data6'] = [];

私は、init配列

function initArray(arr, keys, defaultValue) { 
 
    for (var i = 0; i < keys.length; i++) { 
 
     var key = keys[i]; 
 
     delete arr[key]; 
 
     arr[key] = defaultValue; 
 

 
    } 
 
    return arr; 
 
}

にこれを試してください。しかし、

の配列を設定した後、私はでそれにデータを置きます listData ['data1']。push(datalist [i] .num) listData ['data2']。push(datalist [i] .num) 。 は配列内のすべての同じdata1とdata2を返します。

誰かがこのバッチを手助けして、配列にキーを追加することを願っています。

+0

配列は、一般的にdata1' 'のようなキーの名前が、ちょうど数値インデックス持っていない – adeneo

+0

あなたは_object_'たlistData = {} ' –

+0

@adeneoを探している:あなたが追加した場合まあ、彼らは、やりますそれらは標準配列がオブジェクトなので...しかし、はい、OPはおそらく配列以外のオブジェクトを(または配列を配列として使用する)必要があります。 –

答えて

0

このプッシュ方式を変更してみてください。

var listData = []; 
var keys = [ 'today', 'data', 'daata' ]; 
initObject(keys); 

function initObject(params) { 
    for (i=0; i<params.length; i++) { 
     var x = params[i] 
     listData.push(x) 
    } 
} 
0

ではなく、配列のオブジェクトを使用:

var listData = {}; 
var keys = ['today', 'data1', 'data2']; 

function initObject(obj, keys, defaultValue) { 
    keys.forEach(key => { 
    obj[key] = []; 
    }) 
    return obj; 
} 

console.log(initObject(listData, keys, []));