Javascript 如何解决NaN值的问题?

Javascript 如何解决NaN值的问题?,javascript,Javascript,我想对数组的值求和,但NaN有一个错误 你能帮我吗 const products = [ { id: 1, title: 'T-Shirt', price: 98, quantity: 10 }, { id: 2, title: 'Shoes', price: 70, quantity: 17 } ] let cartItems = [

我想对数组的值求和,但NaN有一个错误 你能帮我吗

const products = [
    {
        id: 1,
        title: 'T-Shirt',
        price: 98,
        quantity: 10
    },
    {
        id: 2,
        title: 'Shoes',
        price: 70,
        quantity: 17
    }
]

let cartItems = []
let parsIntPrice
let totalPrice = 0

const shoppingCart = (myId) => {

    localStorage.setItem('myProduct', JSON.stringify(products))
    const getStorage = localStorage.getItem('myProduct')
    const finalProducts = JSON.parse(getStorage)
    // SHOW EACH ITEM SELECTED
    let selectedResult = finalProducts.filter(item => item.id === myId)
    for (let product in selectedResult) {
        console.log(selectedResult[product].title)

        // CALCULATE TOTAL PRICES
        parsIntPrice = selectedResult[product].price
        totalPrice = cartItems.reduce((firstItem, secondItem) => firstItem + secondItem.parsIntPrice, 0)
        console.log(`Total Price is: ${totalPrice}`)
    }
}

您的
cartItems
数组为空,因此reduce不会对其进行迭代

您可以包含错误日志吗?错误为,总价为:NaN@gavgrif,parsInt只是变量的名称,而不是方法。初始化后,
cartItems
将保持为空,因此,
totalPrice=cartItems.reduce(…
也不会得出预期的结果。另一个建议是不要一次完成太多的事情;例如,
shoppingCart
可能被分解为两个函数,a)一个函数实际收集一个产品列表(通过
myId
),然后是购物车项目列表,b)另一个从后一个列表中计算(通过减少)总价的方法。这会立即清理代码,因此它具有更好的可读性、可调试性和重构性。为了维护数据完整性,您应该只在
localStorage
中存储
id
列表,而不是整个对象。产品和价格可以更改,并且已经在
products
中定义,我怀疑它将在某一时刻从数据库中获取。cartItem不为空:cartItems.push(JSON.stringify(
Product Title:${[selectedResult[Product].Title]}-Price:${[selectedResult[Product].Price]}/code>)@Parisa。。。然后将此新信息作为提供的示例代码的一部分。另外,如果每个项目都是
字符串
类型,OP希望如何操作
cartItems
'reduce方法。。。也就是对产品项的严格颠覆。@Peter Seliger:谢谢你的回答