通过键列表留下对象。纯JS
Leave objects by the list of keys. Pure JS
我想创建一个没有性别字段的新对象数组。哪里错了?
let collections = [
{ name: "Tom", gender: "male", age: 12 },
{ name: "Becky", gender: "female", age: 11 },
{ name: "Huck", gender: "male", age: 13 }
];
let newCollections = collections.slice();
let operations = {
select: function () {
let args = [].slice.call(arguments);
for (let i = 0; i < newCollections.length; i++) {
for (let key in newCollections[i]) {
for (let j = 0; j < args.length; j++) {
if (key !== args[j]) {
delete key;
return newCollections;
} } } } } };
const result = operations.select("name", "age");// the list of fields to save
console.log(result);
你可以使用地图方法来完成:
const array_without_gender = collections.map(el => {
return {name: el.name, age: el.age};
})
此代码将创建由没有性别键的对象填充的新数组,
您可以创建一个 omit()
函数,它将 return 一个没有给定 属性 的对象。
然后我们可以使用 Array.map()
到 运行 数组中的每个项目:
let collections = [ { name: "Tom", gender: "male", age: 12 }, { name: "Becky", gender: "female", age: 11 }, { name: "Huck", gender: "male", age: 13 } ];
function omit(obj, field) {
return (({ [field]: _, ...result }) => result)(obj);
}
let newCollections = collections.map(person => omit(person, 'gender'));
console.log('New collections:', newCollections);
.as-console-wrapper { max-height: 100% !important; top: 0; }
我想创建一个没有性别字段的新对象数组。哪里错了?
let collections = [
{ name: "Tom", gender: "male", age: 12 },
{ name: "Becky", gender: "female", age: 11 },
{ name: "Huck", gender: "male", age: 13 }
];
let newCollections = collections.slice();
let operations = {
select: function () {
let args = [].slice.call(arguments);
for (let i = 0; i < newCollections.length; i++) {
for (let key in newCollections[i]) {
for (let j = 0; j < args.length; j++) {
if (key !== args[j]) {
delete key;
return newCollections;
} } } } } };
const result = operations.select("name", "age");// the list of fields to save
console.log(result);
你可以使用地图方法来完成:
const array_without_gender = collections.map(el => {
return {name: el.name, age: el.age};
})
此代码将创建由没有性别键的对象填充的新数组,
您可以创建一个 omit()
函数,它将 return 一个没有给定 属性 的对象。
然后我们可以使用 Array.map()
到 运行 数组中的每个项目:
let collections = [ { name: "Tom", gender: "male", age: 12 }, { name: "Becky", gender: "female", age: 11 }, { name: "Huck", gender: "male", age: 13 } ];
function omit(obj, field) {
return (({ [field]: _, ...result }) => result)(obj);
}
let newCollections = collections.map(person => omit(person, 'gender'));
console.log('New collections:', newCollections);
.as-console-wrapper { max-height: 100% !important; top: 0; }