0

はいアレイ(型)をループする方法を知っています。Javascriptです。実際、multiDimensionalArrayの配列の値を、indexesというセットでできるだけ包括的に保つように設定する方法を知りたいと思います。例えば、私は3の長さの配列てきた(同様に4の長さとすることができる、100、...):Javascriptで多次元オブジェクトまたは配列プロパティの値を設定する

var indexes = [0, "title", "value"];

Iは、多次元配列(MARRAY)を設定することができる知っていますそのようなインデックスを置くことによって:

multiDimensionalArray[0]["title"]["value"] = "Jeroen";またはmultiDimensionalArray[indexes[0]][indexes[1]][indexes[2]] = "Jeroen";

に与えられたインデックスの配列が変わることができるという事実を、私はこのようなソリューションを探していますので、常に同じインデックス名が含まれていません:

multiDimensionalArray[indexes] = "Jeroen";

この場合、割り当てをどのように記述するかわかりません。 Google/Stack Overflowで検索しました。たぶん私は間違ったキーワードを使用しています。誰でも助けてくれますか?

ありがとうございます!

答えて

0

が、私はそれがジョナスの例のおかげで作業作った方法です:

var json = [{ 
 
    "hello": { 
 
    "world": 1, 
 
    "world2": 2 
 
    }, 
 
    "bye": { 
 
    "world": 1, 
 
    "world2": 2 
 
    } 
 
}]; 
 

 
var indexes = [0, "hello", "world2"]; 
 
var value = "value"; 
 

 
indexes.slice(0,-1).reduce((obj, index) => obj[index], json)[indexes.pop()] = value; 
 
console.log(json);

0

ですから、このような構造を持っていると想像:

var array=[[["before"]]]; 

次にあなたが

var indexes=[0,0,0]; 
var value="value"; 

が実際にやってみたい:簡単に減らすことで達成することができる

array[0][0][0]="value"; 

indexes.slice(0,-1).reduce((obj,index)=>obj[index],array)[indexes.pop()]=value; 

説明例次の

indexes.slice(0,-1) //take all except the last keys and 
.reduce((obj,index)=>obj[index] //reduce them to the resulting inner object e.g. [0,0] => ["before"] 
,array) //start the reduction with our main array 
[indexes.pop()]=value;// set the reduced array key to the value 

var array=[[[0]]]; 
 

 

 
    var indexes=[0,0,0]; 
 
    var value="value"; 
 
    indexes.slice(0,-1).reduce((obj,index)=>obj[index],array)[indexes.pop()]=value; 
 
    
 
    console.log(array);

+0

質問に記載されているようなテキストインデックスを使用すると、これはどのように機能しますか?あなたの例の中のゼロをテキストインデックスで置き換えると、私はそれを動作させるようには見えません。 multiDimensionalArrayにはオブジェクトデータも含まれるため、テキストインデックスを使用しています。 –

+0

@jeroen Boumansはうまくいきます。 –

+0

'indexes.slice(-1)'を 'indexes.slice(0、-1)'に置き換えました。 –

関連する問題