2016-07-27 9 views
0

私は以下のオブジェクトの配列を持っています。オブジェクトの配列をループし、少数のオブジェクトを得る

[Object, Object, Object] 
    0:Object 
     name: "Rick" 
     Contact: "Yes" 
     id: 1 
    1:Object 
     name:"Anjie" 
     Contact:"No" 
     id: 2 
    2:Object 
     name:"dillan" 
     Contact:"Maybe" 
     id:3 

ここでは、名前と連絡先オブジェクトのみが必要です。どうすればそれを得ることができますか?また、他のケースでは、私は名前とIDが欲しい。誰かが私にこれを達成する方法を教えてもらえますか?

名前と連絡先だけがこの結果を与えるべきです。

[Object, Object, Object] 
    0:Object 
     name: "Rick" 
     Contact: "Yes" 
    1:Object 
     name:"Anjie" 
     Contact:"No" 
    2:Object 
     name:"dillan" 
     Contact:"Maybe" 
+1

?かなり単純な問題のようです。あなたはどこにいるのですか? –

+1

あなたのものの[この前の質問](http://stackoverflow.com/questions/38248004/convert-array-of-objects-and-their-properties-to-array)はあなたに多くの道を与えます。 –

+0

名前と連絡先は、オブジェクトのプロパティです。それらは文字列であり、それ自体はもちろんオブジェクトでもあります。しかし、それらをプロパティとして記述することは明らかになりました。とにかくこれを達成するためにArray.mapを使うことができます –

答えて

1

最も簡単な方法は、map機能を使用することです:手動による

また
var objs = objs.map(function(obj) { 
    return { 
     name: obj.name, 
     Contact: obj.Contact 
    } 
}); 

、することができますループ:

var objs = [{ 
 
     name: "Rick", 
 
     Contact: "Yes", 
 
     id: 1 
 
}, { 
 
     name:"Anjie", 
 
     Contact:"No", 
 
     id: 2 
 
}, { 
 
     name:"dillan", 
 
     Contact:"Maybe", 
 
     id:3 
 
}]; 
 

 
var newObjs = []; 
 

 
for (var i=0, len = objs.length; i < len; i++) 
 
{ 
 
    newObjs.push({ 
 
     name: objs[i].name, 
 
     Contact: objs[i].Contact 
 
    }); 
 
} 
 

 
console.log(newObjs);

1

あなたがしたい場合は配列内のオブジェクトのいくつかのプロパティにアクセスする単にあなたがループして値を渡すために使用することができますよりも、私は好きで: -

for(var i=0;i<object.length;i++){ 
    object[i].name // give you name 
    object[i].contact // give you contact do whatever you want to do with this 
} 

あるいは単に、アレイ内の自分のオブジェクトから別のオブジェクトを作成する関数を記述します。

1

あなたは、アンダースコアのmappickを使用することができます。

var result = _.map(data, item => _.pick(item, 'name', 'Contact')); 
0

あなたはmap()を使用して削除されたプロパティを使用して新しいオブジェクトの配列を返すことができます。オブジェクトのコピーを作成するには、汎用的な解決策は、与えられたデータとのいずれかになりcoould (JSON.parse(JSON.stringify()))

var data = [{ id: 1, name: "Rick", Contact: "Yes" }, { id: 2, name: "Anjie", Contact: "No" }, { id: 3, name: "dillan", Contact: 'Maybe' }]; 
 

 
var result = data.map(function(e) { 
 
    var r = (JSON.parse(JSON.stringify(e))); 
 
    delete r.id; 
 
    return r; 
 
}); 
 

 
console.log(result) 
 
console.log(data)

それとも使用Object.assign({}, e)

var data = [{ id: 1, name: "Rick", Contact: "Yes" }, { id: 2, name: "Anjie", Contact: "No" }, { id: 3, name: "dillan", Contact: 'Maybe' }]; 
 

 
var result = data.map(function(e) { 
 
    var r = Object.assign({}, e); 
 
    delete r.id; 
 
    return r; 
 
}); 
 

 
console.log(result); 
 
console.log(data);

1

を使用することができます配列とキー配列。必要なプロパティは新しい配列にマップされます。あなたがする方法がわからない何

function getWithKeys(array, keys) { 
 
    return array.map(function (a) { 
 
     var o = {}; 
 
     keys.forEach(function (k) { 
 
      o[k] = a[k]; 
 
     }); 
 
     return o; 
 
    }); 
 
} 
 

 
var array1 = [{ name: "Rick", Contact: "Yes", id: 1 }, { name: "Anjie", Contact: "No", id: 2 }, { name: "dillan", Contact: "Maybe", id: 3 }], 
 
    array2 = getWithKeys(array1, ['name', 'Contact']), 
 
    array3 = getWithKeys(array1, ['name', 'id']); 
 

 
console.log(array2); 
 
console.log(array3);

関連する問題