【发布时间】:2023-02-07 02:06:59
【问题描述】:
我有一个对象
let arr={tp:1, op:1, lp:0, co:0}
我想将元素推入一个值为 1 的新数组
预期的 arr 就像{tp,op}
【问题讨论】:
-
那不是一个数组,它是一个对象。您能否展示您尝试过的内容并指出具体哪些内容未按预期工作?
标签: javascript
我有一个对象
let arr={tp:1, op:1, lp:0, co:0}
我想将元素推入一个值为 1 的新数组
预期的 arr 就像{tp,op}
【问题讨论】:
标签: javascript
您确实有一个更像是“关联数组”(即地图)的对象。
如果要获取值为 1 的名称(键)。可以使用以下代码:
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)
【讨论】:
{ tp: 1, op: 1 } 那么你可以使用 Object.fromEntries(Object.entries(arr).filter(obj => obj[1] == 1))
那是一个对象。 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);
【讨论】: