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()
只是像您这样迭代项目。