我正在嘗試從整個另一個陣列中過濾出部分匹配的陣列。例如,陣列概述如下:
Array1 =
categories: 292300,
categories: 300,
categories: 292500280
Array2 =
300,
498
使用過濾器,我希望回傳:
NewArray =
categories: 292300,
categories: 300
實作這一點的最佳方法是什么?我試過下面的代碼沒有運氣:
const NewArray = Array1.filter(Array1 => !(Array1.categories.includes(Array2)))
uj5u.com熱心網友回復:
做部分匹配只需要決議int到string
const arr1 = [{categories: 292300}, {categories: 300}, {categories: 292500280}];
const arr2 = [300, 498];
const result = arr1.filter(({ categories }) =>
arr2.some((e) => String(categories).includes(String(e))));
console.log(result);
.as-console-wrapper {max-height: 100% !important; top: 0}
uj5u.com熱心網友回復:
為什么新陣列還包含 292300 而它不包含在 array2 中?
但是如果你想用array2中包含的資料過濾array1,有解決方案
const NewArray = Array1.filter(({ categories }) => Array2.includes(categories))
uj5u.com熱心網友回復:
const Array1 = [{ categories: 292300 }, { categories: 300 }, { categories: 292500280 }];
const Array2 = [300, 498];
const newArray = [];
Array2.forEach((el) => {
Array1.forEach((element) => {
if (element.categories.toString().includes(el.toString())) {
newArray.push(element);
}
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414914.html
標籤:
