2014-09-25 44 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));