我有两个数组:
$array1 = array(1,2,3);
$array2 = array(dog, cat, fox);
如何组合两个数组,将第一个数组用作键,第二个数组用作值?
$array3 = array(1 => dog, 2 => cat, 4 => fox);
在 php 中我们有 array_combine(); 但我似乎找不到在 jQuery 中执行此操作的好方法。
我有两个数组:
$array1 = array(1,2,3);
$array2 = array(dog, cat, fox);
如何组合两个数组,将第一个数组用作键,第二个数组用作值?
$array3 = array(1 => dog, 2 => cat, 4 => fox);
在 php 中我们有 array_combine(); 但我似乎找不到在 jQuery 中执行此操作的好方法。
使用 jQuery,使用循环:
var array3 = {};
$.each(array1, function(i) {
array3[array1[i]] = array2[i];
});
一个简单的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"]
编辑:如果您使用非整数(例如,不是1
, 2
, .. 或'1'
, '2'
, ..)作为键,那么您要在 JavaScript 中创建的不是Array,而是Object myObj = {}
。Array不会抱怨像这样添加键,因为在 JavaScript 中它继承自Object ,但它会被认为是不好的做法并且难以调试。
var array3 = {};
for (var i = 0; i < array1.length; i++) {
array3[array1[i]] = array2[i];
}
在 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];
}
另外,查看js 中的 array_combine。
你会发现很多其他 js 等价的 php 函数。