繁体   English   中英

如何将 arrays object 的值与另一个 object 匹配?

[英]How can i match an value of the arrays object with another object?

我有这个关于用户的 arrays,我有另一个关于品牌的 object,但我想将用户的品牌与品牌相匹配

let users = [{
  ...data
  brand: 'RET'
},
{
  ...data
  brand: 'CAT'
}
]

这是品牌 object

let brands = {
  TYS: 81,
  RET: 62,
  CAT: 90,
  NK:  87,
}

如果用户拥有品牌,那么我必须标记是这样的品牌

let brands = {
  TYS: {
    value: 81,
    exist: 'No'
  },
  RET: {
    value: 62,
    exist: 'Yes'
  },
  CAT: {
    value: 90,
    exist: 'Yes'
  },
  NK: {
    value: 90,
    exist: 'No'
  }

}

您可以遍历 object 的条目并使用Array#some检查每个品牌是否存在。

 let users = [{brand: 'RET'},{brand: 'CAT'}] let brands = {TYS: 81,RET: 62,CAT: 90,NK: 87,} for(const [key, value] of Object.entries(brands)){ brands[key] = { value, exist: users.some(({brand})=>brand===key)? 'Yes': 'No' } } console.log(brands)
 .as-console-wrapper{max-height:100%;important:top:0}

你可以这样做...

Object.keys(brands).forEach((brand) => {
  brandsData[brand] = {
    value: brands[brand],
    exists: users.find((user) => user.brand == brand) ? "Yes" : "No",
  };
});

 let users = [ { brand: "RET", }, { brand: "CAT", }, ]; let brands = { TYS: 81, RET: 62, CAT: 90, NK: 87, }; let brandsData = {}; Object.keys(brands).forEach((brand) => { brandsData[brand] = { value: brands[brand], exists: users.find((user) => user.brand == brand)? "Yes": "No", }; }); console.log(brandsData);

如果要更改brands brandsData本身,则将代码中的brands数据替换为品牌。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM