2016-03-04 3 views
1

Я ищу простой способ (может быть с JQuery), чтобы объединить две строки массива:объединить две строки массива в JavaScript

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

производить:

var c = ["a q", "s w", "d e"]; 
+0

и что вы пробовали? –

+0

И вы не пробовали ['map()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) – Tushar

+0

- это массивы, всегда равные длина? – supersan

ответ

2
a.map((e, i) => e + ' ' + b[i]) 

Tushar получил это право, и, вероятно, самый лучший и самый эффективный способ

0

Вы либо использовать 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]), []) 
+0

'a.map ((e, i) => e + '' + b [i])' – Tushar

1

Попробуйте это (проверьте вывод в консоли):

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 do the conditional on b

Адрес Live Demo.

0

Если длина массива равна 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) 
Смежные вопросы