Я понимаю, что вы хотите найти индекс продуктов в parsedCart
в соответствии с данными в newObj
. И создал новые элементы в параметрах parsedCart
для примера
Если я правильно интерпретировал ваш вопрос, я думаю, причина ошибки в том, что вы пытаетесь использовать свойства productID
и options
в контекст parsedCart.products
в findIndex
Попробуйте следующий пример
const parsedCart = {
id: 1592539903073,
products: [
{
productID: 1001,
name: "Test Product",
qty: 1,
options: {
Color: "Red",
},
},
{
productID: 1002,
name: "Test Product",
qty: 1,
options: {
Color: "Red",
},
},
],
};
const newObj = {
productID: 1002,
name: "Test Product",
qty: 1,
options: {
Color: "Red",
},
};
const index = parsedCart.products.findIndex(
(product) =>
newObj.productID === product.productID &&
newObj.options.Color === product.options.Color
);
console.log(index);
Обновление 0
Сравните варианты, используя JSON.stringify()
const parsedCart = {
id: 1592539903073,
products: [
{
productID: 1001,
name: "Test Product",
qty: 1,
options: {
Color: "Red",
},
},
{
productID: 1002,
name: "Test Product",
qty: 1,
options: {
Color: "Red",
},
},
],
};
const newObj = {
productID: 1002,
name: "Test Product",
qty: 1,
options: {
Color: "Red",
},
};
const index = parsedCart.products.findIndex(
(product) =>
newObj.productID === product.productID &&
JSON.stringify(newObj.options) === JSON.stringify(product.options)
);
console.log(index);