![](/img/trans.png)
[英]Remove <li> elements that does not contain a certain “href” value inside <a>
[英]Does subarray contain a certain value?
我有一個這樣的數組:
var = [
{
"a": "value",
"b": "value2"
},
{
"a": "value3",
"b": "value4"
}
...
]
我需要查找是否有任何子數組包含特定值。
我試過
var.flat().includes("value")
但由於某種原因總是返回 false 並且.flat()
甚至沒有展平數組。
我也試過
var.includes("value")
沒有.flat()
但只有在頂層包含它時才會返回。
我可以做
var = [
"a": [
"value",
"value3"
...
],
"b": [
"value2",
"value4"
...
]
]
但我寧願不這樣做,因為那需要我重寫一些我已經寫過的代碼。
首先使用flatMap
將所有嵌套值提取到單個平面數組中:
const objs = [ { "a": "value", "b": "value2" }, { "a": "value3", "b": "value4" } ]; const values = objs.flatMap(Object.values); console.log(values.includes("value"));
您可以迭代some
(遇到第一個value
時會立即停止循環),結合Object.values
(從對象獲取值數組)和.includes
(檢查數組是否有value
),
const data = [ { a: "value", b: "value2", }, { a: "value3", b: "value4", }, ]; const valid = data.some((d) => Object.values(d).includes("value")); console.log(valid);
在您的代碼中, varr
已經是扁平化的對象數組。 因為您想簽入 Object 個值。 使用varr.map(Object.values).flat()
varr = [ { a: "value", b: "value2", }, { a: "value3", b: "value4", }, ]; console.log(varr.map(Object.values).flat().includes("value"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.