我有两个数组,我需要将它作为数组的对象
var arr1 = [1,2,3,4,5]
var arr2 = [a,b,c]
是否有可能将数组更改为此格式[a,{1,2,3,4,5}],[b,{1,2,3,4,5}],[c,{ 1,2,3,4,5}]
有人可以帮助我吗?
答案 0 :(得分:1)
试试这段代码:
var arr1 = [1,2,3,4,5];
var arr2 = ['a','b','c'];
var result = arr2.reduce(function(obj, item) {
obj[item] = arr1.slice(); // or = arr1 to keep the reference
return obj;
}, {});
console.log(result); // {"a":[1,2,3,4,5],"b":[1,2,3,4,5],"c":[1,2,3,4,5]}
你有2个案例:
result[item] = arr1.slice();
result[item] = arr1;
详细了解reduce()
method。
答案 1 :(得分:0)
是否有可能将数组更改为此 甲酸盐并[a,{1,2,3,4,5}],并[b,{1,2,3,4,5}],并[c,{1,2,3,4,5}]
这既不是数组格式也不是有效的JSON文字,因此这种格式只能是一个字符串。
假设您正在寻找您指定格式的字符串
var output = "[" + arr2.map(function(value){return value+",{" + arr1.join(",") + "}"}).join("],[") + "]";
答案 2 :(得分:0)
使用forEach迭代List并获得所需的结果。
var arr1 = [1,2,3,4,5];
var arr2 = ['a','b','c'];
var result = {} // Result: Object of Array
arr2.forEach(function(val, index) {
result[val] = arr1;
})
我希望这很容易理解:)
答案 3 :(得分:0)
我假设您需要这样的对象 { “一”:[1,2,3,4,5], “B”:[1,2,3,4,5], “C”:[1,2,3,4,5]} < / p>
所以你可以这样做。
var arr1 = [1,2,3,4,5]
var arr2 = ["a","b","c"];
var result={}
arr2.map(function(k){
result[k]=arr1;
})
console.log(result);
但是在这里我给出了键的值作为arr1引用,所以如果arr1将改变结果中键的值也将改变。