将两个数组匹配为数组对象

时间:2016-03-15 06:43:05

标签: javascript arrays

我有两个数组,我需要将它作为数组的对象

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}]

有人可以帮助我吗?

4 个答案:

答案 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将改变结果中键的值也将改变。