迭代多维javascript数组并创建新数组?
我有一个多维JavaScript数组,其中包含一些字符串数据迭代多维javascript数组并创建新数组?,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我有一个多维JavaScript数组,其中包含一些字符串数据 var array = []; array[0] = ["A","B","C"]; array[1] = ["G","H"]; 我想把它们合并成一个新的数组 第一个数组的值1应与数组2的值1合并,依此类推 当然,我可以这样做 var array2 = array[0][0] + array[1][0]; 但是我不知道数据,所以第一个数组可以容纳6个值,也可以有2个以上的数组 是否有一种方法可以动态迭代多维数组并创建新数组
var array = [];
array[0] = ["A","B","C"];
array[1] = ["G","H"];
我想把它们合并成一个新的数组
第一个数组的值1应与数组2的值1合并,依此类推
当然,我可以这样做
var array2 = array[0][0] + array[1][0];
但是我不知道数据,所以第一个数组可以容纳6个值,也可以有2个以上的数组
是否有一种方法可以动态迭代多维数组并创建新数组。最简洁的编写方法如下:
arrays[0].map((_, i) => arrays.map(array => array[i]).join(''))
细分:
arrays[0] // Starting with the first sub-array,
.map( // create a corresponding array
(_, i) => // whose value, for each index is,
arrays // for each of the sub-arrays,
.map( // an array whose values are
array => array[i]) // the subarray at that index
)
.join('') // with its elements joined together
);
您可以使用和方法
// iterate over multi diamensional array and
// generate array with first element of each nested array
var array2 = array.map(function(v){
// retrieve the first element
return v[0];
// join them to convert into a string as your output
}).join('')
var数组=[];
数组[0]=“A”、“B”、“C”];
数组[1]=[“G”,“H”];
var array2=array.map(函数(v){
返回v[0];
}).加入(“”)
控制台日志(array2)代码>我认为您需要执行以下操作:
myArray = [["s","m","a"],["d","f"],["t","h","r"]];
function generateStrings(array2d){
newArray = [];
function interate(n){
newString = myArray.reduce((p,c)=>{return c[n]?p+c[n]:p},"")
console.log(newString)
if (newString)newArray.push(newString),interate(n+1)
}
interate(0)
return newArray;
}
generateStrings(myArray);
可以使用简单的reduce函数合并数组
const arr = [ [1, 2, 3], [4, 5] ];
const newArr = arr.reduce((acc, x) => [...acc, ...x], [])
console.log(newArr) // [1, 2, 3, 4, 5]
如果需要在合并后创建String
对象,只需对返回的数组应用join(“”)
用海螺
这是函数的concat
版本,以备您使用
const newArr = arr.reduce((acc, x) => acc.concat(...x), [])
[“A”、“B”、“C”].concat([“G”、“H”])
var array2=array[0][0]+array[1][0];array2=“AG”。array.map(x=>x[0])
请添加预期的输出和您尝试的代码。输出应为“AG”。未捕获语法错误:意外标记[
Oops..您需要map(
(如果数组[0],这会正常工作吗?)
比其他数组短吗?不,但我不知道在这种情况下需要什么。太好了。这正是我需要的。你让我很开心。@AlexClaesson:很乐意帮忙:)这是一种非常笨拙的方法。[]concat(…arr)
,这不是OP想要做的。当然你也可以使用concat,但它看起来不太好。你的选择。