循环遍历对象数组并仅获取几个对象
Loop through an array of objects and get only a few objects
我有以下对象数组。
[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"
最简单的方法是使用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);
如果您想访问数组中对象的某些属性,您可以使用 for 循环并传递 i 的值,例如:-
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
}
或者简单地编写一个函数,从数组中的对象中创建一个单独的对象。
var result = _.map(data, item => _.pick(item, 'name', 'Contact'));
您可以使用 map()
和 return 新对象数组并删除 属性。要创建对象的副本,您可以使用 (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);
通用解决方案可以是具有给定数据数组和键数组的解决方案。所需属性映射到新数组中。
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);
我有以下对象数组。
[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"
最简单的方法是使用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);
如果您想访问数组中对象的某些属性,您可以使用 for 循环并传递 i 的值,例如:-
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
}
或者简单地编写一个函数,从数组中的对象中创建一个单独的对象。
var result = _.map(data, item => _.pick(item, 'name', 'Contact'));
您可以使用 map()
和 return 新对象数组并删除 属性。要创建对象的副本,您可以使用 (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);
通用解决方案可以是具有给定数据数组和键数组的解决方案。所需属性映射到新数组中。
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);