gpt4 book ai didi

javascript - 如何在javascript中比较array1的obj和array的obj

转载 作者:行者123 更新时间:2023-11-30 13:48:11 24 4
gpt4 key购买 nike

我被代码困住了。我实际上想使用 typescript/javascript 过滤 dataLayer 中的元素。

我的数据层定义如下所示

track: { products },
dataLayers: { current: { cart: { items } } }

products?: IProduct[]

export interface IProduct {
id: string
quantity?: string
name?: string
}
items?: ICartItem[]

export interface ICartItem {
id: string
brand: string
name: string
quantity: number

}

跟踪:{ 产品}

产品有 {id,quantity}

dataLayers: { current: { car​​t: { items } } }

商品有{id, brand, name, quantity}

现在我想过滤id并获取产品名称,例如:

例子:*

products:{
[{id: 'a123',quantity: '1'},{id:'a345', quantity:'2'}]
}

items:{
[{id: 'a123',brand:'pen',name: 'Reynolds', quantity: '1'}, {id: 'a143',brand:'pencil',name: 'Nataraj', quantity: '3'}, {id: 'a122',brand:'pen',name: 'Parker',quantity: '1'},{id:'a345',brand:'Eraser',name: 'Faber-Castell', quantity:'2'}]
}*

预期输出

id:a123,name:'雷诺兹'

id:a345,name:'辉柏嘉'

我的代码:

const id = products.map(product => { return product.id})
items.filter((item) => {
return item.id === id
})
.map((item)=> {
const { id, name } = item
console.log("id" + id)
console.log("name" + name)
})

实际输出

给出错误

**

const id: string[]
This condition will always return 'false' since the types 'string' and 'string[]' have no overlap.ts(2367)

**

为什么我无法比较 item.id 和 id

最佳答案

您正在将字符串数组 id 与作为字符串的每个项目 id 进行比较。像下面一样。

items.filter(item => id.includes(item.id))

关于javascript - 如何在javascript中比较array1的obj和array的obj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58876097/

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