gpt4 book ai didi

javascript - 使用reduce删除对象中的偶数

转载 作者:行者123 更新时间:2023-11-30 19:31:33 26 4
gpt4 key购买 nike

我得到了一组数字。我创建了一个名为 counts 的对象,其键是数字,值是这些数字在数组中出现的次数。无法弄清楚如何使用 reduce 删除数字的偶数。

A =  [ 20, 1, -1, 2, -2, 3, 3, 5, 5, 1, 2, 4, 20, 4, -1, -2, 5 ]

n = 5

function findOdd(A) {

let counts = {};

for (let i = 0; i < A.length; i++) {
let num = A[i];
counts[num] = counts[num] ? counts[num] + 1 : 1;
}

//counts -> { '1': 2, '2': 2, '3': 2, '4': 2, '5': 3, '20': 2, '-1': 2, '-2': 2 }

const answer = Object.keys(counts).reduce((object, key) => {
if (key % 2 !== 0) {
object[key] = counts[key];
}
return object;
}, {})

return answer;

必须返回奇数的 key 。

解决方案:

function findOdd(A) {
const counts = {};
for (let i = 0; i < A.length; i++) {
let num = A[i];
counts[num] = counts[num] ? counts[num] + 1 : 1;
}
Object.keys(counts).forEach(key => {
if(counts[key] % 2 === 0) {
delete counts[key];
}
});
return Number(Object.keys(counts));
}

最佳答案

您可以使用Object.entries 获取整体,然后过滤 值为奇数的条目,然后使用Object 从这些条目重建新的Object .fromEntries:

const countObject = { '1': 2, '2': 2, '3': 2, '4': 2, '5': 3, '20': 2, '-1': 2, '-2': 2 };
const oddEntries = Object.entries(countObject).filter(([key, value]) => value % 2 !== 0);
const oddCountObject = Object.fromEntries(oddEntries)

console.log(oddCountObject)

关于javascript - 使用reduce删除对象中的偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56385783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com