gpt4 book ai didi

javascript - 动态传递键以映射到新对象

转载 作者:行者123 更新时间:2023-12-01 03:16:15 28 4
gpt4 key购买 nike

抱歉标题令人困惑,不知道如何用一句话来描述这一点。

我有以下实用函数:

module.exports.reduceObject = item => (({price, suggest_price }) => ({price, suggest_price }))(item);

它从键 pricesuggest_price 中获取,并返回一个仅包含这些键和值的新对象。

然后我可以像这样转动一个对象:

inspect_link: 'steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198279893060A%item_id%D9567622191659726240',
price: '2.15',
suggested_price: '2.90',
is_featured: false,
float_value: '-1.00000',
pattern_info:
{ paintindex: 0,
paintseed: null,
rarity: 3,
quality: 4,
paintwear: null },
is_mine: false,
tags: { type: 'Collectible', quality: 'Normal', rarity: 'High Grade' },
fraud_warnings: [],
stickers: null,
updated_at: 1501880427 }

进入它的简化版本:

{"price":"2.59","suggested_price":"1.41"}

然后我将其存储在 MongoDB 数据库中。

我希望能够动态传递键(例如 pricesuggested_price),以便我可以将任何对象缩小为自身的较小版本,但是我正在努力寻找一个好的实现。

我写了一些东西,例如:

module.exports.reduceObject = (item, keys) => (({ ...keys }) => ({ ...keys }))(item);

这是无效的,但老实说我不知道​​如何解决这个问题。

谁能提供解决方案吗?

最佳答案

我发现 lodash 的实现很难阅读。如果您像我一样,这里有一个更简单的实现:

function pick(object, keys) {
const result = {};
for (const key of keys) {
if (object.hasOwnProperty(key)) {
result[key] = object[key];
}
}
return result;
}

根据您的使用情况,检查 key 是否确实位于源对象中可能很重要。这之前曾让我犯过错误。

关于javascript - 动态传递键以映射到新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45515842/

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