2017-09-11 66 views
-1

我想在javascript中設置多個數組鍵,javascript批量添加鍵

但這樣的代碼太難看了。但只有這樣才能正確運作。

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

我嘗試這初始化數組

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

但設置後陣,

我把數據通過它(dataalist [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, []));