我有一個簡單的陣列問題:我有兩個不同的陣列:一個是字串,一個是物件。我需要以某種方式相互檢查:物件陣列需要檢查物件的屬性是否包含在字串陣列中,并在每種情況下回傳回應。
const colors = ["blue", "pink", "red", "green", "yellow", "orange", "white"]
const objColors = [{name:"pink", value: true}, {name:"green", value: true}, {name: "white", value: false}]
我預期的回應陣列將類似于:
const res = [false, true, false, true, false, false, false]
我不知道如何解決這個問題,因為我嘗試了幾件事都沒有成功。我嘗試了兩次迭代,但它給了我錯誤的回應。我也嘗試過包含的方法,但是我只能檢查我的 objColors 陣列,因此我沒有得到我需要檢查的所有情況的回應
let res = objects.map(x => (strings.includes(x.name)))
有人可以給我一個關于如何檢查它們以獲得所需回應的提示嗎?提前致謝
uj5u.com熱心網友回復:
首先將物件陣列轉換為更易于檢查的結構 - 可能是 Map,或一組為 true 的值。然后您可以映射顏色陣列并查找關聯的值。
const colors = ["blue", "pink", "red", "green", "yellow", "orange", "white"];
const objColors = [{name:"pink", value: true}, {name:"green", value: true}, {name: "white", value: false}];
const trueColors = new Set(
objColors
.filter(({ value }) => value)
.map(({ name }) => name)
);
const res = colors.map(color => trueColors.has(color));
console.log(res);
uj5u.com熱心網友回復:
與物件的方法。
const
colors = ["blue", "pink", "red", "green", "yellow", "orange", "white"],
objColors = [{ name: "pink", value: true }, { name: "green", value: true }, { name: "white", value: false }],
wanted = Object.fromEntries(objColors.map(({ name, value }) => [name, value])),
result = colors.map(c => !!wanted[c]);
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/419124.html
標籤:
上一篇:在帶有列的表中顯示結果
