猿问

对象键过滤

如何将对象键传递给一个真实的数组。这样我就可以使用这个数组进行过滤了吗?

示例对象:


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)


开心每一天1111
浏览 192回答 2
2回答

largeQ

您可以从 获取属性名称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));

哔哔one

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'))
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答