Javascript 在数组的对象中查找值

Javascript 在数组的对象中查找值,javascript,Javascript,我用javascript创建了一个对象,用于保存网格中特定列的一些值,如下所示: var Columns = { Value1: [12], Value2: [15]} 我想搜索一个特定的值并知道它来自何处,例如:我收到了'12'值,所以我想知道列和数组中是否有'12'值(在本例中,它将是Value1) 如何执行此操作?您可以使用Object.keys方法获取键,然后使用find方法获取值包含搜索元素的键 var列={ 值1:[12], 价值2:[15] }

我用javascript创建了一个对象,用于保存网格中特定列的一些值,如下所示:

var Columns = { Value1: [12],
                Value2: [15]}
我想搜索一个特定的值并知道它来自何处,例如:我收到了'12'值,所以我想知道列和数组中是否有'12'值(在本例中,它将是Value1)


如何执行此操作?

您可以使用
Object.keys
方法获取键,然后使用
find
方法获取值包含搜索元素的键

var列={
值1:[12],
价值2:[15]
}
const result=Object.keys(Columns.find)(e=>{
返回列[e]。包括(12)
})

console.log(result)
如果12与多个项相关联怎么办?在这种情况下,每个列仅与一个值相关联。在这种情况下,不确定数组是否是值类型的最佳选择,但在这种情况下,您可以使用
Object.keys(Columns)。find(e=>Columns[e][0]==12)
请注意,如果12与两个键相关联,这种方法将给出第一个关键点。如果您需要所有的加工键,请使用
filter
而不是
find
,或者您可以使用
const findCol=Columns=>val=>Object.keys(Columns).find(e=>Columns[e].includes(val))
将其作为可重用函数,其中
findCol(Columns)
如果列是固定的,则它本身可能是一个可重用的函数。另外请注意,只有在查找数字或字符串等简单值时,此技术才有效。如果实际数据涉及对象或数组,则仅当
对象属性包含对您搜索的相同对象的引用时,此操作才有效<代码>包含并不特别复杂。