0

I'd like to make an array how this:

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

The inputs to the array I'd like to do only when varOne, varTwo and varThree are other than null

Best regards

oscarvady
  • 450
  • 1
  • 4
  • 12

2 Answers2

1

Looks pretty natural to use if blocks for this:

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

and so on.

dfsq
  • 191,768
  • 25
  • 236
  • 258
0

Just to add to dfsqs answer, you could create a function whichtakes any number of arguments and uses an iterator to perform a null check on each one. (ie use the arguments object - see JavaScript variable number of arguments to function) This code will give you an array of [{"1":"x"},{"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));
Community
  • 1
  • 1