Javascript 将两个数组作为数组的对象进行匹配

Javascript 将两个数组作为数组的对象进行匹配,javascript,arrays,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}] 有人能帮我吗?试试下面的代码: var arr1 = [1,2,3,4,5]; var arr2 = ['a','b','c']; var result = arr2.reduce(function(obj, item) { obj[item

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

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

有人能帮我吗?

试试下面的代码:

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]}
您有两个案例:

  • 要创建数组的克隆,请使用
    result[item]=arr1.slice()
  • 要保留对同一数组的引用,请使用
    result[item]=arr1
查看有关
reduce()
的更多信息

是否有可能将阵列更改为此 甲酸盐[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("],[") + "]";

使用forEach遍历列表并获得所需的结果

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;
})

我希望这很容易理解:)

我想你需要这样一个物体 {“a”:[1,2,3,4,5],“b”:[1,2,3,4,5],“c”:[1,2,3,4,5]}

所以你可以这样做

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改变键的值,结果也会改变

[代码><代码>[a,{1,1,2,2,3,3,3,3,4,4,4,5},[a,{1,1,2,2,3,3,3,4,4,5},[a,[1,1,1,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,5}][5}][c,[c,[1,1,1,1,1,1,1,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5},,,[5}][5}][5},[5},,,,[5},[5},[5},[它被视为array@Dmitri帕夫卢廷哦,好的<代码>映射()
不是最佳选项
forEach()
更合适。
map()
用于将一个数组转换为另一个数组(您不需要这样做)
forEach()
只是像您这样迭代项目。