如何组合这两个数组,使用第一个数组作为键,第二个数组作为值?

时间:2013-02-24 10:34:21

标签: jquery

我有两个数组:

$array1 = array(1,2,3);
$array2 = array(dog, cat, fox);

如何组合两个数组,使用第一个数组作为键,第二个数组用于值?

$array3 = array(1 => dog, 2 => cat, 4 => fox);

在php中我们有array_combine();但我似乎无法在jQuery中找到一个好方法。

4 个答案:

答案 0 :(得分:2)

使用jQuery,使用循环:

var array3 = {};
$.each(array1, function(i) {
    array3[array1[i]] = array2[i];
});

答案 1 :(得分:0)

一个简单的for循环应该可以做到这一点。

var arr1 = [3, 5, 7],       // keys, integers or "integer strings" e.g. "5"
    arr2 = ['a', 'b', 'c']; // values

var arr3 = [], i;

for (i = 0; i < arr1.length; ++i) {
    arr3[arr1[i]] = arr2[i];
}

arr3; // [undefined × 3, "a", undefined × 1, "b", undefined × 1, "c"]

修改:如果您使用的是非整数(例如,不是12,..或'1''2', ..)作为键,那么你想在JavaScript中创建的不是 Array ,而是 Object myObj = {} Array 不会抱怨添加这样的键,因为在JavaScript中它继承自 Object ,但它被认为是不好的做法,难以调试。

答案 2 :(得分:0)

var array3 = {};
for (var i = 0; i < array1.length; i++) {
   array3[array1[i]] = array2[i];
}

答案 3 :(得分:0)

在js中,与php不同,哈希和数组是两回事。

所以,我假设你想要一个对象而不是数组。

var $array1 = array(1,2,3);
var $array2 = array(dog, cat, fox);
var obj = {};

for(var i=0,len=$array1.length; i < len ;i++) {
 obj[$array1[i]] = $array2[i];
}

另外,请查看array_combine in js

你会发现许多其他js等效的php函数。