2014-09-25 4 views
0

Я хотел бы сделать массив как это:Построение массива с объектами

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

Входы в массив, я хотел бы сделать только тогда, когда varOne, varTwo и varThree отличны null

с наилучшими пожеланиями

+0

Вы хотите фильтровать переменные, если их нет? –

+0

В чем вопрос? Чего вы пытаетесь достичь? –

+0

Я хочу, чтобы фильтр, когда переменными являются «null», например, если 'varOne == null', массив будет' [{"TWO": varTwo}, {"THREE": varThree}] ' – oscarvady

ответ

1

выглядит довольно естественно использовать if блоки для этого:

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

и так далее.

+0

Он работает! благодаря – oscarvady

0

Чтобы добавить ответ dfsqs, вы можете создать функцию, которая принимает любое количество аргументов и использует итератор для выполнения нулевой проверки на каждом из них. (Т.е. использовать аргументы объекта - см JavaScript variable number of arguments to function) Этот код даст вам множество [{ "1": "х"}, { "2": "г"}]

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)); 
Смежные вопросы