2014-09-25 43 views
0

數組的我想打一個數組如何:構建有對象

var varOne, varTwo, varThree; // (If vars are == null don't insert on array) 
var array = []; 
array = [ 
    {"ONE": varOne}, 
    {"TWO": varTwo}, 
    {"THREE": varThree} 
    ]; 

到陣列的投入,我想這樣做,只有當varOnevarTwovarThreenull

其他

問候

+0

要過濾如果沒有'null'的變量? – 2014-09-25 08:50:34

+0

這裏有什麼問題?你想達到什麼目的? – 2014-09-25 08:52:48

+0

我想過濾變量是否爲'null',例如,如果'varOne == null'數組將會是'[{「TWO」:varTwo},{「THREE」:varThree}' – oscarvady 2014-09-25 08:52:52

回答

1

看起來很自然地用if塊這樣的:

if (varOne !== null) { 
    array.push({ONE: varOne}); 
} 

等。

+0

它的工作原理!謝謝 – oscarvady 2014-09-25 09:26:10

0

只需添加到dfsqs答案,您可以創建一個函數,它可以檢查任意數量的參數,並使用迭代器對每個參數執行空檢查。 (即使用arguments對象 - 見JavaScript variable number of arguments to function) 此代碼給你的陣列[{ 「1」: 「×」},{ 「2」: 「Z」}]

function foo() { 
var array = []; 
var counter = 0; 
for (var i = 0; i < arguments.length; i++) { 
    if (arguments[i]){ 
     counter++; 
     var map = {}; 
     map[counter] = arguments[i] 
     array.push(map); 
     //document.write(i + " " + arguments[i] + " "); 
    } 
} 
return array; 
} 

var varOne="x"; 
var varTwo=null; 
var varThree="z"; // (If vars are == null don't insert on array) 

var array = foo(varOne,varTwo,varThree); //could be as many variables as you like 
//document.write(JSON.stringify(array));