[英]Concatenate a two dimensional array
我是新手,需要帮助才能找到适合我的Java函数的解决方案
function concatenateMatrix(matrix) {}
var stringMatrix = [
['H', 'e', 'l', 'l', 'o'],
[' ', 'J', 'a', 'v', 'a'],
['W', 'o', 'r', 'l', 'd', '!']
];
var matrix = '';
newArray = [];
for (var i = 0; i < stringMatrix.length; i++) {
for (var j = 0; j < stringMatrix[i].length; j++);
newArray.push(stringMatrix);
stringMatrix = '';
}
console.log(concatenateMatrix(stringMatrix))
应该是Java World,您好! 显示。
我怎么了 非常感谢
我已经解决了,非常感谢
for(var x in stringMatrix) {
if(stringMatrix[x] instanceof Array) {
stringMatrix[x] = stringMatrix[x].join("");
}
} var concatenateMatrix = stringMatrix.join(“”);
返回concatenateMatrix;
您可以先展平/合并数组元素,然后再join
""
以显示完整的单词,例如
[].concat.apply([], stringMatrix).join("")
var stringMatrix = [ ['H','e','l','l','o'], [' ','J','a','v','a'], ['W','o','r','l','d','!'] ]; console.log([].concat.apply([], stringMatrix).join(""))
function matrixMapper(matrix){
var str = ''
matrix.map(function(arr){
str += arr.join('') + ' '
})
console.log(str)
}
基本上迭代矩阵中的数组,加入子数组并将它们添加到您的字符串中
您还可以使用array的reduce()
, concat()
和join()
方法。
演示
var arr= [ ['H','e','l','l','o'], [' ','J','a','v','a'], ['W','o','r','l','d','!'] ]; console.log(arr.reduce((r,v)=>r.concat(v),[]).join(''));
.as-console-wrapper { max-height: 100% !important; top: 0; }
使用map()
var arr= [ ['H','e','l','l','o'], [' ','J','a','v','a'], ['W','o','r','l','d','!'] ]; console.log(arr.map(v=>v.join('')).join(''));
.as-console-wrapper { max-height: 100% !important; top: 0; }
伙计,我认为您是javaScript的新手,仅使用单个数组即可实现目标,不需要使用两个循环和两个数组。 我已经检查过您的代码,为您尝试编写一些代码
var stringMatrix = ['H','e','l','l','o',' ','J','a','v','a','W','o','r','l','d','!'];
for(var i=0; i<stringMatrix.length; i++){
document.write(stringMatrix[i]);
}
既然大家都指出,这样做的更简单的方法,但你已经很涉及您的代码编写的缺陷,这里是你的代码的一个简单的修正:
function concatenateMatrix(matrix) {
var stringMatrix = [
['H','e','l','l','o'],
[' ','J','a','v','a'],
['W','o','r','l','d','!']
];
var matrix = '';
newArray = [];
for(var i=0; i<stringMatrix.length; i++){
for(var j=0; j<stringMatrix[i].length; j++){
newArray.push(stringMatrix[i][j]);
}
}
return newArray;
}
console.log(concatenateMatrix(stringMatrix));
您太早关闭了花括号,使用缩进进行编码,以便可以看到这些问题,错过了返回值,添加了stringMatrix
而不是stringMatrix[i][j]
,并且每次在i
循环中都在清除stringMatrix
(也许您想改为清除stringMatrix[i]
?)
您可以连接数组,然后使用数组的Join函数将最终数组连接起来。
var str=[];
for(var i=0;i<stringMatrix.length;i++){
str = str.concat(stringMatrix[i]);
}
console.log(str.join(" "));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.