通过选择多个属性值之一从数组中获取 JavaScript 对象 [关闭]
Posted
技术标签:
【中文标题】通过选择多个属性值之一从数组中获取 JavaScript 对象 [关闭]【英文标题】:Get JavaScript object from array by choosing one of multiple properties values [closed] 【发布时间】:2020-04-20 20:52:25 【问题描述】:我知道以前有人问过类似的问题,但这个问题有点不同。
我有这个JS 数组:
var Array = [
name: "Name1",
src: "Source",
tags: [
"t1", "t2", "t3"
]
,
name: "Name2",
src: "Source",
tags: [
"t2", "t4"
]
,
name: "Name3",
src: "Source",
tags: [
"t1", "t3", "t4"
]
]
我想从数组中选择一个对象,它在这个 Search()
函数中有一个 "t1"
IN tags
function Search(e)
for(const obj of Array)
if (*A SORTING WAY*)
obj.show = true
else
obj.show = false
Render()
Render()
函数是:
function Render()
const app = document.getElementById('app')
app.innerhtml =''
for (const objIndex in Array)
const obj = Array[objIndex]
const ob = document.createElement('div')
ob.classList.add('class','col')
ob.innerHTML = '<p>' + obj.name + '</p> <img src="assets/'+ obj.src +'.png"></img>'
if (obj.show)
app.append(ob)
【问题讨论】:
你能发布一些你的代码/工作,那么只有我们可以帮助你。 @PrabhjotSinghKainth 我已经添加了我的代码。我希望你能帮助我 【参考方案1】:Array.filter()
会这样做
var array = [
name: "Name1",
src: "Source",
tags: [
"t1", "t2", "t3"
]
,
name: "Name2",
src: "Source",
tags: [
"t2", "t4"
]
,
name: "Name3",
src: "Source",
tags: [
"t1", "t3", "t4"
]
];
console.log(array.filter((v) => v.tags.includes("t1")));
编辑:将indexOf
的使用替换为includes
【讨论】:
为什么不用includes
而不是indexOf
?
我想只是出于习惯,但includes
也可以正常工作,它看起来也更具可读性。我会更新的,谢谢。【参考方案2】:
用 javascript 试试这段代码:
var Array1 = [
name: "Name1",
src: "Source",
tags: [
"t1", "t2", "t3"
]
,
name: "Name2",
src: "Source",
tags: [
"t2", "t4"
]
,
name: "Name3",
src: "Source",
tags: [
"t1", "t3", "t4"
]
]
var array2 = [];
Array1.find(function(e)
if(e.tags.includes("t1"))
array2.push(e)
)
【讨论】:
以上是关于通过选择多个属性值之一从数组中获取 JavaScript 对象 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章