2017-07-08 10 views
0

私はjavascriptには本当に新しく、次のことを達成しようとするといくつかの問題が発生しました。私はフォーラムを検索しようとしました - このような問題はおそらく以前に解決されたものですが、何を検索するのか分かりません。また、これは非常に創造的なタイトルの理由である:とにかく/アレイの変換?

- これが私の現在のコードです:

var arraylength = 4; 
var originalarray = new Array(new Array); 
var originalarray = { 
    [1, 1, 1, 1] 
    [2, 2, 2, 2] 
    [3, 3, 3, 3] 
    [4, 4, 4, 4]  
} 

convertarray(originalarray, arraylength); 

function convertarray(originalarray, arraylength){ 
    var converedtarray = new Array(new Array); 
    var temparray = new Array; 
    temparray.length = arraylength; 

    for (h = 0; h < arraylength; h++) { 
     var temparray = []; 
     var temparray = originalarray[h].split(''); 

     for (i = 0; i < arraylength; i++) { 
      converedtarray[h][i] = temparray[i]; 
     } 
    } 
return convertedarray; 
} 

私はコードが自身のために話すが、これはどのような私のために擬似であれば全くわかりません達成したい。

originalarray = 1111, 2222, 3333, 4444 
converedtarray = 1234, 1324, 1234, 1234 

誰かが私が逃した部分を教えてもらえますか、私にできることのヒントを教えてもらえますか? 私は取得していますのでこの部分では、「例外TypeError未定義のオブジェクトではありません」:

converedtarray[h][i] = temparray[i]; 

私は決して専門のコーダーだ - 私は、コードがきれいではありません知っているが、これは、多かれ少なかれです試行錯誤の結果...実際に試行よりも誤りです。

ご回答いただきありがとうございます。

+0

あなたは '新しいアレイ(新しいアレイ)は'何を思いますか?私はそれがナンセンスだと思うので。 –

+0

あなたは 'converedtarray [h] [i]'を設定しようとしていますが、 'converedtarray [h]'はまだ設定していません –

答えて

0

コードにはいくつか問題があります。まず、nXn配列を使用する場合は、originalarrayを間違って定義してください。第2のnew Array(new Array)はあなたが思っていた場合には配列の配列を宣言しません。列を維持するための最初のものと行の維持のための最初のものをすでに考え出したので、ここでは2つのループが必要です。

var arraylength = 4; 
 
var originalarray = new Array(); 
 
var originalarray = [ 
 
[1, 1, 1, 1], 
 
[2, 2, 2, 2], 
 
[3, 3, 3, 3], 
 
[4, 4, 4, 4]  
 
] 
 

 
console.log(convertarray(originalarray, arraylength)); 
 

 
function convertarray(originalarray, arraylength){ 
 
var converedtarray = new Array(); 
 

 
for (h = 0; h < arraylength; h++) { 
 
    converedtarray[h] = []; 
 
    for (i = 0; i < arraylength; i++) { 
 
     converedtarray[h].push(originalarray[i][h]); 
 
    }   
 
} 
 
return converedtarray; 
 
}

+0

これは何をするのですか?それはどのように質問に答えますか? – Rob

+0

@Robまだ編集中です。 – Dij

+0

これは私の問題を修正しました - ありがとうございました! :) – Phonomaniac

0

可能な解決策:

var arraylength = 4; 
 
var originalarray = [ 
 
    [1, 1, 1, 1], 
 
    [2, 2, 2, 2], 
 
    [3, 3, 3, 3], 
 
    [4, 4, 4, 4], 
 
]; 
 

 
function convertarray(originalarray, arraylength) { 
 
    var result = []; 
 
    for (h = 0; h < arraylength; h++) { 
 
    result.push(
 
     originalarray.map(function(subarray) { 
 
     return subarray[h]; 
 
     }) 
 
    ); 
 
    } 
 
    return result; 
 
} 
 

 
console.log(
 
    convertarray(originalarray, arraylength) 
 
);

+0

これは何をするのですか?それはどのように質問に答えますか? – Rob

+0

このコードをありがとう!私はそれを働かせることはできませんでしたが、私はそれが "マップ"機能と関係していると思います。私がPhotoshopのプログラミングをしているので、それは問題かもしれません:( – Phonomaniac

+0

ああ、それは意味があります。以前のバージョンのJavaScript/ECMAScriptでは 'Array.prototype.map'は利用できません。 –

関連する問題