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

按属性值过滤对象

按属性值过滤对象

冉冉说 2022-12-22 14:47:42
我有一个包含对象的对象。我想返回一个新对象,该对象仅包含具有特定值属性的对象。const object = {  a: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},  b: {prop1: 'jkl', prop2: 'mno', prop3: 'pqr'},  c: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},  d: {prop1: 'abc', prop2: 123, prop3: 'ghi'}};let group = {};for (let key in object) {  if (object[key].prop1 === 'abc') {    group += object[key];  }  console.log(object[key].prop1);}console.log(group);
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

+=运算符不能像您预期的那样处理对象。


尝试=像这样的运算符group[key] = object[key]。


const object = {

    a: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},

    b: {prop1: 'jkl', prop2: 'mno', prop3: 'pqr'},

    c: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},

    d: {prop1: 'abc', prop2: 123, prop3: 'ghi'}

};


let group = {};


for (let key in object) {

    if (object[key].prop1 === 'abc') {

        group[key] = object[key];

    }

}


console.log(group);


查看完整回答
反对 回复 2022-12-22
?
陪伴而非守候

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

你可以试试这个


const object = {

    a: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},

    b: {prop1: 'jkl', prop2: 'mno', prop3: 'pqr'},

    c: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},

    d: {prop1: 'abc', prop2: 123, prop3: 'ghi'}

};


let group = {};


for (let key in object) {

    if (object[key].prop1 === 'abc') {

        group[key] = object[key];

    }

    console.log(object[key]);

}


console.log(group);


查看完整回答
反对 回复 2022-12-22
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

您使用Object.entries返回对象数组与 [[key, value],[key,value],...] 的组合。接下来,您可以filter根据条件获取数据,最后只保留您想要使用的格式map。


您可以在下面阅读有关这些的更多信息:


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries


var object = {

    a: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},

    b: {prop1: 'jkl', prop2: 'mno', prop3: 'pqr'},

    c: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},

    d: {prop1: 'abc', prop2: 123, prop3: 'ghi'}

};


var arr = Object.entries(object);

   

console.log(Object.fromEntries(arr.filter(a=>a[1].prop1==="abc"))); // Keeps your keys

console.log(arr.filter(a=>a[1].prop1==="abc").map(a1=>a1[1])) // Just array of objects



查看完整回答
反对 回复 2022-12-22
  • 3 回答
  • 0 关注
  • 70 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信