Reputation: 253318
I have an array, as below:
var cString = [
['1','Techdirt','www.techdirt.com'],
['2','Slashdot','slashdot.org'],
['3','Wired','wired.com']
];
to this array I want to add another in the same format:
var test = ['4','Stackoverflow','stackoverflow.com']
I've tried using:
var newArray = $.merge(cString, test);
But console.log(newArray);
outputs:
[►Array,►Array,►Array,'4','Stackoverflow','stackoverflow.com']
So I'm assuming that I'm missing something obvious. Or attempting something stupid...help?
Upvotes: 11
Views: 64370
Reputation: 520
you can use merge function like this
var newArray = $.merge($.merge([], cString), test);
Upvotes: 2
Reputation: 536389
In addition to push
as described by patrick, if you want to create a new list rather than changing the old, you can add arrays together with Array#concat
:
var newArray= cString.concat([['4','Stackoverflow','stackoverflow.com']]);
Upvotes: 2
Reputation: 322492
jQuery is not needed for this. Just use the Array's .push()
method to add it to the main array.
var test = ['4','Stackoverflow','stackoverflow.com']
cString.push( test );
What $.merge()
does is it walks through the second array you pass it and copies its items one by one into the first.
EDIT:
If you didn't want to modify the original array, you could make a copy of it first, and .push()
the new Array into the copy.
var cString = [
['1','Techdirt','www.techdirt.com'],
['2','Slashdot','slashdot.org'],
['3','Wired','wired.com']
];
var test = ['4','Stackoverflow','stackoverflow.com']
var newArray = cString.slice();
newArray.push( test );
Upvotes: 16