javascript - 根据数组值删除对象属性

标签 javascript reactjs

我有我的引用数组

const reference = ['prefix', 'suffix', 'student_email']

我的对象看起来像这样

const obj = {
               'prefix':'John',
               'suffix':'Doe',
               'student_email':'johndoe23@rigly.org',
               'course_code':'PJ4004',
               'professor':'McMillian'
            }

我想删除“course_code”和“professor”,因为它不属于引用数组。我怎样才能做到这一点?

预期输出:

const obj = {
               'prefix':'John',
               'suffix':'Doe',
               'student_email':'johndoe23@rigly.org',
            }

我有什么:

reference.map(v => {
    delete obj[v]; // this will delete what I don't want it to delete
});

如何才能只删除那些我不需要/不存在于引用数组中的内容?

最佳答案

您可以循环遍历Object#keys并删除数组中未找到的属性:

const reference = ['prefix', 'suffix', 'student_email']
const obj = {
  'prefix':'John',
  'suffix':'Doe',
  'student_email':'johndoe23@rigly.org',
  'course_code':'PJ4004',
  'professor':'McMillian'
}

Object.keys(obj).forEach(i=>{
  if(reference.indexOf(i) === -1) delete obj[i];
});

console.log(obj);

关于javascript - 根据数组值删除对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38228510/

相关文章:

javascript - 使用 jquery 单击时将文本附加到 div 元素

javascript - React-Redux 错误页面管理

javascript - 无法解析对 Kinvey 后端的批量 JSON POST 请求

javascript - jQuery 过滤动态 html 内容

javascript - knockout.js 未从 json 映射可观察数组

javascript - react : Having some trouble passing multiple pieces of state.

javascript - react 输入焦点事件以显示其他组件

javascript - ReactJS:setTimeout 无法在 map 内工作来渲染组件

reactjs - CardMedia高度 Material -ui

javascript - JavaScript 变量的背景颜色十六进制