2017-12-05 20 views
0

私はオブジェクトの配列を持ち、各オブジェクトには約5つのプロパティとそれぞれの値があります。私は配列内の各オブジェクトを繰り返し処理し、そこから2つのプロパティだけを取り出し、オブジェクトと配列を再構築したいと思います。例えばJavaScriptでオブジェクトを最小化してオブジェクトの配列から配列を作成する方法

let resArray = [ 
{"name": "Aaron", "id": 123, "sex": "male", "country": "usa"}, 
{"name": "Bert", "id": 456, "sex": "male", "country": "usa"}, 
{"name": "Brenda", "id": 657, "sex": "female", "country": "canada"}, 
{"name": "Chris", "id": 856, "sex": "male", "country": "usa"}, 
{"name": "Angela", "id": 113, "sex": "female", "country": "columbia"}, 
{"name": "Maria", "id": 569, "sex": "female", "country": "mexico"}]; 

は私がオブジェクトから「国」と「性別」のプロパティを削除し、「名前」と「ID」特性を保持し、アレイを再構築したいです。以下のように、すなわち、出力は次のようになります。今のよう

let outArray = [ 
{"name": "Aaron", "id": 123}, 
{"name": "Bert", "id": 456}, 
{"name": "Brenda", "id": 657}, 
{"name": "Chris", "id": 856}, 
{"name": "Angela", "id": 113}, 
{"name": "Maria", "id": 569}]; 

を、私はちょうどresArrayを使用して、全体の配列を反復処理し、私は好きな値を取得しています。しかし、私はちょうど私が混乱の明らかになるようにオブジェクトを最小限に抑えることができると思う。

誰でも私を助けてくれますか? ありがとうございます。

答えて

5

array#mapに沿って使用できますobject#destructuringとなります。 array#mapを使用してオブジェクトを反復し、nameidの値を取得し、新しいオブジェクトを作成します。

let resArray = [ {"name": "Aaron", "id": 123, "sex": "male", "country": "usa"}, {"name": "Bert", "id": 456, "sex": "male", "country": "usa"}, {"name": "Brenda", "id": 657, "sex": "female", "country": "canada"}, {"name": "Chris", "id": 856, "sex": "male","country": "usa"}, {"name": "Angela", "id": 113, "sex": "female", "country": "columbia"}, {"name": "Maria", "id": 569, "sex": "female", "country": "mexico"}]; 
 
let result = resArray.map(({name, id}) => ({name, id})); 
 
console.log(result);

+1

をいただきありがとうございます:)本当に便利。 –

1

使用Array#map機能や項目も

let resArray = [ 
 
    {"name": "Aaron", "id": 123, "sex": "male", "country": "usa"}, 
 
    {"name": "Bert", "id": 456, "sex": "male", "country": "usa"}, 
 
    {"name": "Brenda", "id": 657, "sex": "female", "country": "canada"}, 
 
    {"name": "Chris", "id": 856, "sex": "male", "country": "usa"}, 
 
    {"name": "Angela", "id": 113, "sex": "female", "country": "columbia"}, 
 
    {"name": "Maria", "id": 569, "sex": "female", "country": "mexico"} 
 
]; 
 

 
let mappedArr = resArray.map(item => ({name: item.name, id: item.id})); 
 

 
console.log(mappedArr);

あなたはパラメータリスト内で自分のパラメータitemを破壊して得ることができますに基づいて、所望の形状を作成するだけで目的の結果

let mappedArr = resArray.map(({id, name}) => ({name, id})); 
0

あなたは、単に以下のよう.map()を使用することができます -

let resArray = [ 
 
    {"name": "Aaron", "id": 123, "sex": "male", "country": "usa"}, 
 
    {"name": "Bert", "id": 456, "sex": "male", "country": "usa"}, 
 
    {"name": "Brenda", "id": 657, "sex": "female", "country": "canada"}, 
 
    {"name": "Chris", "id": 856, "sex": "male", "country": "usa"}, 
 
    {"name": "Angela", "id": 113, "sex": "female", "country": "columbia"}, 
 
    {"name": "Maria", "id": 569, "sex": "female", "country": "mexico"} 
 
]; 
 

 
let outArray = resArray.map(item => ({name: item.name, id: item.id})); 
 

 
console.log(JSON.stringify(outArray));

関連する問題