2017-11-30 7 views
0

私はオブジェクトの配列の中で特定のオブジェクトを取得しようとしています。このデータの操作方法は?

var arr = [ 
      { 
      id: "asd" 
      description: "V1", 
      output: [{type: "A", id:"ge"}] 
      }, 
      { 
      id: "qwe" 
      description: "V2", 
      output: [{type: "B", id:"de"}] 
      } 
      ]; 

console.log(arr.description); 

console.log(arr.output.type); 

所望の出力は次のようになります

{ 
    { description: "V1", output: {type: "A", id: "ge"}}, 
    { description: "V2", output: {type: "B", id: "de"}} 
} 

とも私はちょうど出力のようなオブジェクトにオブジェクトの'output'配列を変換したいと思います。これを達成する方法は?

ご希望outputがそもそも有効なJSONの構文ではありません、ここで

+1

配列のインデックスが作成され、あなたがこの 'ARR [0]' 'あなたを与えるだろう{IDのようにそれらにアクセスする必要があります: "ASD"、説明: "V1"、出力:{タイプ:" A "、id" ge "}}' – WilomGfx

+2

"*正しい出力形式であるかどうかは100%確信していません* '。 **あなたは、希望の出力*が何であるべきかを指定します。正確に何を達成しようとしているのですか?上記の成果がどのように達成するのに役立つと思いますか? –

+0

だからあなたは何も試していないし、あなたはすべてアイデアを欠いている。 – melpomene

答えて

0

を助けて...

outputだけあなたが行うことができます長さ1の配列が含まれていることと仮定:

for (var i = 0; i < arr.length; i++) { 
     arr[i]['output'] = arr[i]['output'][0]; 
    } 

これは、元の配列表記を削除します。

0

外側の配列を削除し、すべてのアイテムを取得するには、あなたがこれを行うことができます、最初にあなたのアレイを介しoutput値で、その後の配列を

var arr = [ 
 
    { 
 
    id: "asd", 
 
    description: "V1", 
 
    output: [{type: "A", id:"ge"}] 
 
    }, 
 
    { 
 
    id: "qwe", 
 
    description: "V2", 
 
    output: [{type: "B", id:"de"}] 
 
    } 
 
]; 
 

 
for (let item of arr) { 
 
    console.log(item); 
 
}

+0

'item.output'の値の配列表記を削除することは可能ですか? – Pradeep

+0

'toString()'を呼び出すことができます。あるいは、外側の配列のようにループするか、 'output [0]' –

0

ループを。私は変異を避けるために、あなたの元outputオブジェクトから上書きコピーするspread syntaxを使用することを選択したことに注意してください:最初の

var arr = [{ 
 
    id: "asd", 
 
    description: "V1", 
 
    output: [{ 
 
     type: "A", 
 
     id: "ge" 
 
    }] 
 
    }, 
 
    { 
 
    id: "qwe", 
 
    description: "V2", 
 
    output: [{ 
 
     type: "B", 
 
     id: "de" 
 
    }] 
 
    } 
 
]; 
 

 
const objArr = []; 
 

 
arr.forEach(obj => { 
 
    obj['output'].forEach(obj => { 
 
    objArr.push({ ...obj }); 
 
    }); 
 
}); 
 

 
console.log(objArr);

0

を、あなたの配列構文で小さなミスを持っています。 それは最も:

var arr = [ 
     { 
     id: "asd", 
     description: "V1", 
     output: [{type: "A", id:"ge"}] 
     }, 
     { 
     id: "qwe", 
     description: "V2", 
     output: [{type: "B", id:"de"}] 
     } 
     ]; 

あなたはそれをログに記録したい場合は、この使用することができます。

arr.forEach(function(item){console.log(item.description)}) 

このコード:arr配列内の各オブジェクトの は、実行します。そのオブジェクトの セット名をitemへ 、最終的にログdescriptionitem

このコードを他の形式で使用することができます

グッドラック

関連する問題