如何按此顺序合并或组合两个数组。
var list1 = ["A", "B", "C"];
var list2 = ["X", "Y", "Z"];
var i = 0;
for (i = 0; i < list1.length && list2.length; i++) {
var list3[i] = list1[i] + list2[i];
}
最终结果将是。
var list3 = ["AX", "BY", "CZ"];
答案 0 :(得分:5)
您可以像这样使用function(data) {
d = data; // variable that changes on user input
// creates brand new object with the same data
let oldD = Object.create(data.constructor.prototype);
data.constructor.apply(oldD);
}
:
map()
您还可以使用模板文字:
let list1 = ["A", "B", "C"];
let list2 = ["X", "Y", "Z"];
let result = list1.map((c, i) => c + list2[i]);
console.log(result);
有用的资源:
答案 1 :(得分:4)
如果长度相同,则可以使用map()
方法。
var list1 = ["A", "B", "C"];
var list2 = ["X", "Y", "Z"];
const merged = list1.map((e, i) => e + list2[i]);
console.log(merged)
答案 2 :(得分:3)
您的代码工作正常,只需要在循环之前而不是在其中声明list3
var list1 = ["A", "B", "C"];
var list2 = ["X", "Y", "Z"];
var i = 0;
var list3 = []; //observe this line here
for (i = 0; i < list1.length && list2.length; i++) {
list3[i] = list1[i] + list2[i]; //var is removed
}
修改强>
同时观察 for循环条件的变化
for (i = 0; i < list1.length && i < list2.length; i++) { // i needs to be less than list2.length as well
list3[i] = list1[i] + list2[i]; //var is removed
}
注意强>
list3
的长度为Math.min (list1.length , list2.length)
答案 3 :(得分:3)
你快到了那里:
var list1 = ['A', 'B', 'C'];
var list2 = ['X', 'Y', 'Z'];
var list3 = [];
for (var i = 0; i < list1.length; ++i) {
list3[i] = list1[i] + list2[i];
}
在循环外声明list3
。由于两个列表的大小相同,因此您只需检查一个。
答案 4 :(得分:2)
您可以使用 map
。
var list1 = ["A", "B", "C"];
var list2 = ["X", "Y", "Z"];
var result = list1.map((e, i) => e + list2[i])
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
或者,您可以 concat
数组,检查长度,并连接元素:
var list1 = ["A", "B", "C"],
list2 = ["X", "Y", "Z"],
jump = list1.length,
result = [],
arr = list1.concat(list2);
for (var i = 0; i < jump; i++) result.push(arr[i] + arr[i + jump]);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 5 :(得分:2)
语法问题:
list3
声明为空数组。var
重新声明。
var list1 = ["A", "B", "C"];
var list2 = ["X", "Y", "Z"];
var list3 = [];
var i = 0;
for (i = 0; i < list1.length; i++) {
list3[i] = list1[i] + list2[i];
}
console.log(list3);
&#13;
答案 6 :(得分:2)
您需要提前声明list3
并使用空数组初始化。
您需要检查索引是否小于list2
的长度,以便仅获取结果的相同索引处的值。
var list1 = ["A", "B", "C"],
list2 = ["X", "Y", "Z"],
list3 = [],
i = 0;
for (i = 0; i < list1.length && i < list2.length; i++) {
list3[i] = list1[i] + list2[i];
}
console.log(list3);
&#13;