JavaScript如何移除数组内对象的多余键,仅保留id、token、name三个键
实现方案
下面给两种常用的实现方式,可根据实际场景选择:
方案1:固定保留属性(写法最简洁)
直接用数组的map方法结合解构赋值,手动提取需要的三个属性即可:
// 原始数组 const originArr = [ { id:1, token: 'xyz', name: 'john', _v: 2, _isActived: true, _isBlocked: false }, { id: 2, token: 'abc', name: 'thomas', _v: 2, _isActived: true, _isBlocked: false } ]; const resArr = originArr.map(({ id, token, name }) => ({ id, token, name }));
直接输出resArr就能得到你要的结果。
方案2:动态保留属性(扩展性更强)
如果后续可能调整需要保留的属性,建议把要保留的键单独存成数组,结合reduce实现通用逻辑:
// 定义要保留的属性列表 const keepKeys = ['id', 'token', 'name']; const resArr = originArr.map(item => { return keepKeys.reduce((newObj, key) => { // 加判断可以避免原始对象不存在该属性时生成值为undefined的键 if (item.hasOwnProperty(key)) { newObj[key] = item[key]; } return newObj; }, {}) })
如果不需要做属性存在性判断,去掉if判断逻辑即可。
内容的提问来源于stack exchange,提问作者Anna
相关产品推荐
相关产品推荐

