我正在使用“推送”
创建一个数组所以结果是[Object,Object]
在那里代码看起来像:
[Object, Object]
0: Object
type: Array[6]
1: Object
type: Array[4]
我想将两个对象组合起来并获得如下结果:
["Mike", "Matt", "Nancy", "Adam", "Jenny", "Carl", "Jim", "Issac", "Lee", "Won"]
我不知道这个有用吗,有什么建议吗?
代码示例:
dropdown: function(data) {
var arr = [];
$.each(data, function(key, value) {
arr.push({
type: value.type
});
});
}
答案 0 :(得分:4)
您可以使用concat将一个数组连接到另一个数组。
arr = arr.concat(otherArr);
请注意concat
创建一个新数组,原始数据保持不变,这就是您必须重新分配它的原因。
注意 - 对于三个数组,您可以继续传入它们。
var arr1 = [0,1];
var arr2 = [2,3];
var arr3 = [4,5];
arr1 = arr1.concat(arr2, arr3);
console.log(arr1);
修改
你提到过拥有动态数组。我不确定你是什么意思,但我会注意到,如果你有一个任意数组的数组,并且你想要它们全部合并,你可以这样做
var arr1 = [0,1];
var arr2 = [2,3];
var arr3 = [4,5];
var otherArrays = [arr2, arr3];
arr1 = Array.prototype.concat.apply(arr1, otherArrays);
console.log(arr1);
答案 1 :(得分:1)
使用concat
,就像这样
arr1=["apple","orange","pineapple","pomegranate"];
arr2=["pizza","candy","chocolate","tasty"];
arr3=["food","drink"];
concatted=arr1.concat(arr2).concat(arr3);
您可以根据需要继续将这样的数组链接在一起,直到内存不足
或者,你可以这样做
concatted=arr1.concat(arr2,arr3);
如果要删除重复项,可以使用此
Array.prototype.removeDuplicates=function(){
var newArray=[];
for(var i=0;i<this.length;i++){
if(newArray.indexOf(this[i])==-1){
newArray.push(this[i]);
}
}
return newArray;
}
答案 2 :(得分:0)
由于您指定可以使用jquery,请查看merge()
函数:http://api.jquery.com/jquery.merge/
答案 3 :(得分:0)
一个简单的循环:
var result = [];
for (var i = 0; i < objects.length; i++) {
$.merge(result, object[i].type);
}