在 JavaScript 中组合两个字符串数组

combine two string arrays in javascript

本文关键字:两个 字符串 数组 JavaScript 组合      更新时间:2023-09-26

我正在寻找一种简单的方法(可以使用jQuery)来组合两个字符串数组:

var a = ["a", "s", "d"];
var b = ["q", "w", "e"];

产生:

var c = ["a q", "s w", "d e"];
a.map((e, i) => e + ' ' + b[i])

Tushar做对了,可能是最好和最有效的方法

试试这个(在控制台中检查输出):

var a = ["a", "s", "d"]; //add or remove items
var b = ["q", "w", "e"]; //add or remove items
if(a.length>b.length) {
  var biggest = a.slice();
  var smallest = b.slice();
} else {
  var biggest = b.slice();
  var smallest = a.slice();
}
var c = biggest.map(function(num, i) {
  if(i < smallest.length) return num + " " + smallest[i];
  return num;
});
console.log(c);
//CHECK OUTPUT IN CONSOLE

这允许数组的大小不同,并且仍然产生相同的结果。否则,只需映射a执行条件b

这是一个现场演示

如果数组长度相等a and b那么你可以试试这个。

var a = ["a", "s", "d"];
var b = ["q", "w", "e"];
var c = [];
for (var i=0;i<a.length; i++) {
    val = a[i] + " " + b[i];
    c.push(val)
}
console.log(c)

你可以使用Array.prototype.map:

var a = ["a", "s", "d"];
var b = ["q", "w", "e"];
var c = a.map(function(item, i) {
  return item + ' ' + b[i]
})

或 Array.prototype.reduce:

var c = a.reduce(function(prev, item, i) {
  return prev.concat(item + ' ' + b[i])
}, [])

无论你更喜欢什么。如果你在ES2015友好的世界中,那么使用箭头函数会让它变得更好:

// map
var c = a.map((item, i) => item + ' ' + b[i])
// reduce
var c = a.reduce((prev, item, i) => prev.concat(item + ' ' + b[i]), [])