簡體   English   中英

連接一個二維數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM