为了账号安全,请及时绑定邮箱和手机立即绑定

对象键过滤

对象键过滤

开心每一天1111 2022-05-26 17:54:25
如何将对象键传递给一个真实的数组。这样我就可以使用这个数组进行过滤了吗?示例对象:let results = [      {name: marc, isAlumnus: true, isScholar: true, isTrustee: false},      {name: franz, isAlumnus: false, isScholar: true, isTrustee: false},      {name: Hugo, isAlumnus: true, isScholar: true, isTrustee: false},    ]和一个功能的尝试!getActiveStatusGroups (results) {            let res = [];            res = results.map((item) => {                if (item) {                    res.push('isScholar');                }            });          return res;        },let statusArray = getActiveStatusGroup(this.results)
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超8个赞

您可以从 获取属性名称Object.keys数组,或从 获取数组[name, value]数组Object.entries,具体取决于您要执行的操作。


很难说出你想要什么样的输出作为结果,但是例如,这会返回一个数组数组,其中内部数组是其值为真的属性的名称:


getActiveStatusGroups(results) {

    return results.map(entry =>

        Object.keys(entry).filter(key => entry[key])

    );

}

现场示例:

let results = [

    {isAlumnus: true, isScholar: true, isTrustee: false},

    {isAlumnus: false, isScholar: true, isTrustee: false},

    {isAlumnus: true, isScholar: true, isTrustee: false},

];


function getActiveStatusGroups(results) {

    return results.map(entry =>

        Object.keys(entry).filter(key => entry[key])

    );

}


console.log(getActiveStatusGroups(results));


查看完整回答
反对 回复 2022-05-26
?
哔哔one

TA贡献1854条经验 获得超8个赞

JavaScript 中的过滤非常简单


方法名称就在您的标题中,但您未能识别它。使用filter而不是map. 该filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。


这是你的代码


let results = [

      {name: marc, isAlumnus: true, isScholar: true, isTrustee: false},

      {name: franz, isAlumnus: false, isScholar: true, isTrustee: false},

      {name: Hugo, isAlumnus: true, isScholar: true, isTrustee: false},

]


getActiveStatusGroups(group) {

  // returns the element if the condition is true

  return results.filter(result => result[group])

}

就是这样


console.log(getActiveStatusGroups('isAlumnus'))

console.log(getActiveStatusGroups('isScholar'))

console.log(getActiveStatusGroups('isTrustee'))


查看完整回答
反对 回复 2022-05-26
  • 2 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号