2016-09-13 2 views
1

Я пытаюсь сформировать новый массив в javascript, который состоит из двух 1 массивных массивов (одной длины).Формирование нового массива javascript путем объединения двух столбцов другого массива

var A = [1,2,3]; 
var B = [20, 10, 30]; 

и я хочу создать C:

C = [[1,20],[2,10],[3,30]]; 

Это кажется довольно простой задачей. Мне интересно, есть ли функция, которую я могу использовать для этого (чтобы избежать циклов). Возможно, что-то с array.from или на карте? У меня возникли проблемы с выяснением того, как это будет работать.

ответ

3

Вы можете попробовать следующие

var A = [1, 2, 3]; 
 
var B = [20, 10, 30]; 
 

 
var C = A.map(function(item, index) { 
 
    return [item, B[index]] 
 

 
}); 
 

 
console.log(C);

1

Для того же массив длиной мы можем использовать карту функцию - Ответ Нихила в

Я просто предоставление дополнительной информации, если оба имеют значение массива разных длины.

function mixArray(a, b) { 
    if (a.length < b.length) { 
    var j = Array(b.length-a.length).fill(''); 
    a = a.concat(j); 
    } 

return a.map(function(item, index) { 
    var tempArr = []; 
    if (item !== '') { 
     tempArr.push(item); 
    } 
    if (b[index] !== undefined) { 
     tempArr.push(b[index]); 
    } 
    return tempArr; 
    }); 

} 

Входы

var a = [1, 2, 3, 7, 8, 9]; 
var b = [20, 10, 30, 5]; 
console.log(mixArray(a,b)); // [[1, 20], [2, 10], [3, 30], [7, 5], [8], [9]] 

var a = [1, 2]; 
var b = [20, 10, 30, 5]; 
console.log(mixArray(a,b)); // [[1, 20], [2, 10], [30], [5]] 

Надежда это помогает! Спасибо Демонстрация: https://jsbin.com/dusuna/edit?html,js,console

Смежные вопросы