const Data = [ gender: [{ male: true, female: false }], stock: [ { size: 3, stock: 100 }, { size: 3.5, stock: 10 }, { size: 4, stock: 0 }, { size: 4.5, stock: 330 }, { size: 5, stock: 5 }, { size: 5.5, stock: 555 }, { size: 6, stock: 6 }, { size: 6.5, stock: 63 }, { size: 7, stock: 0 }, { size: 7.5, stock: 100 }, { size: 8, stock: 33 }, { size: 8.5, stock: 333 }, { size: 9, stock: 222 }, { size: 9.5, stock: 99 }, { size: 10, stock: 99 }, { size: 10.5, stock: 77 }, { size: 11, stock: 55 } ] }, { gender: [{male: false, female: true }], stock: [ { size: 3, stock: 140 }, { size: 3.5, stock: 130 }, { size: 4, stock: 10 }, { size: 4.5, stock: 30 }, { size: 5, stock: 53 }, { size: 5.5, stock: 55 }, { size: 6, stock: 64 }, { size: 6.5, stock: 643 }, { size: 7, stock: 0 }, { size: 7.5, stock: 100 }, { size: 8, stock: 334 }, { size: 8.5, stock: 333 }, { size: 9, stock: 22 }, { size: 9.5, stock: 9 }, { size: 10, stock: 99 }, { size: 10.5, stock: 7 }, { size: 11, stock: 45 } ], } ]
我想基于以下标准更新数组:
1)如果客户选择的尺码不在数组中,我只想返回包含所选尺码的产品。对此,我正在进行更新。
我有以下代码来说明我想达到的目标:
var set3 = new Set([ 4, 5.5, 6, 6.5 ]);
const array = [];
for (const cat of set3) {
array.push(cat)
}
我正在将客户选择的一组数字推送到数组中,如果产品包含这些尺寸(尺码:4、5.5、6、6.5),则我希望只更新状态。
2)我只想返回符合上述条件的产品。
到目前为止,这是我所尝试的:
var set3 = new Set([ 4, 5.5, 6, 6.5 ]);
const array = [];
for (const cat of set3) { array.push(cat) }
let mappedData = Data.map((product) => { return product.stock.map((item) => { if(item.stock === 0) { return item.size = undefined } else { return item.size } }) })
mappedData.forEach((item, idx, array) => {check = array.every (r => item.indexOf(r) >= 0) if( check ) { console.log(item) } else { return item } })
当我在控制台打印日志时,它返回包含我要查找的内容的项,但 A) 它没有更新产品,B) 当我控制台打印日志时,它实际上并没有返回我要查找的项。我相信这与 JavaScript 中我不知道的一些东西有关。