通过选择多个属性值之一从数组中获取 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 对象 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

核心数据 - 获取与数组中的值之一匹配的属性

通过属性值从对象数组中获取JavaScript对象[重复]

通过属性值从对象数组中获取JavaScript对象[重复]

根据JavaScript中的属性值从对象数组中选择[重复]

如何从 React 中的数组中获取值? [关闭]

启用多重选择后如何从velve-select组件中获取所有值