pg:想将[{name:‘哈哈’,age:12,sex:1},{name:‘白白’,age:5,sex:3},{name:‘黑黑’,b:12}]变成[{name:‘哈哈’,age:12},{name:‘白白’,age:5},{name:‘黑黑’,b:12}]可以使用如下办法:
const temp = [{name:'哈哈',age:12,sex:1},{name:'白白',age:5,sex:3},{name:'黑黑',b:12}];
//使用对象解构和剩余参数语法...rest来获取除了属性filterList之外的其他属性,并将其组成一个新的对象。然后使用map()方法遍历原始数组,将每个对象转换为新的对象,最终得到一个新的
const newArr = temp.map(obj => {
const {sex, ...rest} = obj;
return rest;
});
上述可能会提示temp.map(({sex, …rest}) => rest);中*‘sex’ is defined but never used.eslintno-unused-vars*,不要慌,这是代码检查器ESLint的规则在执行中……
在代码中,尽管通过解构赋值将sex从obj中提取出来了,但并没有在map函数的回调中使用这个变量。因此,ESLint会发出警告,提示sex被定义了但没有被使用。
如果想要解构sex但从不使用它,有以下几种选择:
1.忽略警告:通过在变量名或整个函数前面添加特殊的注释来告诉ESLint忽略这个特定的警告。pg:
// eslint-disable-next-line no-unused-vars
2.使用sex变量:如果sex确实有用,需要立即使用,否则考虑是否应该解构sex
3.移除对sex的解构:如果和我一样只是想想获取除了sex之外的所有属性,完全可以移除对sex的解构代码,直接用map处理如下所示:
const temp= [{name:'哈哈',age:12,sex:1},{name:'白白',age:5,sex:3},{name:'黑黑',b:12}];
const newArr = temp.map(obj =>{return { 'name':obj.name,'age':obj.age}
});
以上就是我遇到这个问题的发现的所有解决方法,有借鉴网络的地方,如有侵权,请联系我删除