gpt4 book ai didi

javascript - 如何按照 JSLint 搜索嵌套对象

转载 作者:行者123 更新时间:2023-12-04 03:45:23 25 4
gpt4 key购买 nike

我的对象结构如下,我想找到具有所提供 ID 的产品。

0 :{
id: 0,
title: 'xxxx',
url: "www.test.com"
quantity: 100
},
1 :{
id: 10,
title: 'xxxx',
url: "www.test.com"
quantity: 100
},
// and so on...

为了在对象中搜索嵌套属性,我编写了以下函数:

export const selectProductById = (state, productId) => {
const obj_index = Object.keys(state.products).find(function(idx) {
if (state.products[idx].id == productId) {
return idx;
}
}

return state.products[obj_index]
}

这行得通,但在编译我的 React 应用程序期间,我总是会收到警告。应为“===”,却看到了“==”

但是如果我将其更改为 === 代码将不再有效,有谁知道如何更改它以使其遵循 JSLint 规则?

最佳答案

听起来 productId 不是数字。首先将其转换为数字:

if (state.products[idx].id === Number(productId)) {

但是您应该从 .find 回调中返回一个真值或假值,不是您正在迭代的东西(因为您可能不确定它是否为真或虚假,这可能会造成混淆)。返回 === 比较的结果:

const { products } = state;
const obj_index = Object.keys(products).find(
key => products[key].id === Number(productId)
);

关于javascript - 如何按照 JSLint 搜索嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65261931/

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