【问题标题】:filter the elements in object array corresponding to value过滤value对应的object数组中的元素
【发布时间】:2023-02-07 02:06:59
【问题描述】:

我有一个对象

let arr={tp:1, op:1, lp:0, co:0}

我想将元素推入一个值为 1 的新数组 预期的 arr 就像{tp,op}

【问题讨论】:

  • 那不是一个数组,它是一个对象。您能否展示您尝试过的内容并指出具体哪些内容未按预期工作?

标签: javascript


【解决方案1】:

您确实有一个更像是“关联数组”(即地图)的对象。

如果要获取值为 1 的名称(键)。可以使用以下代码:

  1. 转换为条目数组
  2. 按值过滤
  3. 提取名称

    let arr={tp:1, op:1, lp:0, co:0}
    
    const ones = Object.entries(arr)
      .filter(([_, value]) => value === 1)
      .map(([name]) => name)
    
    console.log(ones)

【讨论】:

  • 如果 OP 真的想要 { tp: 1, op: 1 } 那么你可以使用 Object.fromEntries(Object.entries(arr).filter(obj => obj[1] == 1))
【解决方案2】:

那是一个对象。 Iterate over the object 如果属性键的对应值等于 1,则将属性键压入数组。

const obj = { tp: 1, op: 1, lp: 0, co: 0 };

const arr = [];

for (const key in obj) {
  if (obj[key] === 1) arr.push(key);
}

console.log(arr);

【讨论】:

    猜你喜欢
    • 2014-01-05
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 2022-01-03
    相关资源
    最近更新 更多