gpt4 book ai didi

javascript - 如何从对象中删除 $$hashKey?

转载 作者:行者123 更新时间:2023-11-30 07:34:08 32 4
gpt4 key购买 nike

Ramda REPL example

你好,我有一个对象数组。这些对象以某种方式获得了一个 $$hashKey。我需要删除 $$hashKey 以便我删除重复项或删除唯一性逻辑。

let tickers = [
{
$$hasKey: "object:280",
ticker: 'goog'
},
{
$$hasKey: "object:308",
ticker: 'goog'
},
{
$$hasKey: "object:327",
ticker: 'goog'
}
]

R.uniq(tickers); //-> Returns all instead of 1

R.dropRepeats(tickers); //-> Returns all instead of 1

我试过了,但后来我的代码数组以 3 个 undefined 值结束。

const removeRepeats = tickers => {
console.log('removeRepeats', tickers);
tickers = _.map(tickers, ticker => {
delete ticker['$$hasKey'];
});

return R.dropRepeats(tickers);
};

最佳答案

我假设你真的想要 uniq而不是 dropRepeats . uniq 为您提供列表中不同元素的集合。 dropRepeats 只是删除相同值的顺序副本。 ([1, 1, 2, 3, 3, 3, 2, 2, 1] => [1, 2, 3, 2, 1])。

要做到这一点,我认为它分为两个步骤,一个是创建没有违规 key 的版本(Ramda 的 dissoc 应该有助于解决这个问题),另一个是将列表缩减为 uniq 元素。我可能会这样写:

let myFunc = R.pipe(R.map(R.dissoc('$$hasKey')), R.uniq);
myFunc(tickers);

如果您不想简单地删除单个属性,而是保留它们的固定列表,您可以这样做:

R.pipe(R.map(R.pick(['ticker', 'prop2', 'prop3'])), R.uniq)

关于javascript - 如何从对象中删除 $$hashKey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39650349/

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