请帮助。
如何在JS中转换这些数组:
$ar1 = array('Shop 1', 15, 25, 30);
$ar2 = array('Shop 2', 25, 45, 50);
$ar3 = array('Month', 1, 2, 3);
到此:
$values = array(
array('Month', 'Shop 1', 'Shop 2'),
array('1', 15, 25),
array('2', 25, 45),
array('3', 30, 50),
);
在PHP中我可以这样做:
$result = array_map(function($a,$b,$c){ return [$a,$b,$c]; }, $ar3,$ar1,$ar2);
或者那样:
function flip($arr) {
$result = array();
foreach ($arr as $index => $list) {
foreach ($list as $key => $value) {
$result[$key][$index] = $value;
}
}
return $result;
}
$values = flip([$ar3, $ar1, $ar2]);
答案 0 :(得分:0)
您可以尝试这样的事情:
var arr1 = ['Shop 1', 15, 25, 30];
var arr2 = ['Shop 2', 25, 45, 50];
var arr3 = ['Month', 1, 2, 3];
var res = [];
Object.keys(arr3)
.forEach(function(key){
res.push([arr3[key].toString(), arr1[key], arr2[key]]);
});
console.log(res);

答案 1 :(得分:0)
使用适当的数组,您可以使用嵌套循环转换单个数组。
var array1 = ['Shop 1', 15, 25, 30],
array2 = ['Shop 2', 25, 45, 50],
array3 = ['Month', 1, 2, 3],
result = [array3, array1, array2].reduce(function (r, a, i) {
a.forEach(function (b, j) {
r[j] = r[j] || [];
r[j][i] = b;
});
return r;
}, []);
console.log(result)

.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 2 :(得分:0)
您可以在Javascript中使用Array.prototype.map
。它将数组索引作为参数传递给回调,然后您可以使用它来访问其他两个数组。
var arr1 = ['Shop 1', 15, 25, 30];
var arr2 = ['Shop 2', 25, 45, 50];
var arr3 = ['Month', 1, 2, 3];
var result = arr3.map(function(element, index) {
return [element, arr1[index], arr2[index]];
});
console.log(result);