Javascript 访问此对象的名称
如果某个测试通过,我将尝试循环一个对象并获取其名称 比如说Javascript 访问此对象的名称,javascript,arrays,object,Javascript,Arrays,Object,如果某个测试通过,我将尝试循环一个对象并获取其名称 比如说 var x = { 'first':[ 'ab', 'abc', ], 'second':[ 'sia', 'sss' ], 'third':[ 'jp', 'jh' ] }; 如您所见,我有一个包含数组的对象 假设我得到了sss的值。。。。我正试图弄清楚,当给定适当的值时,如何让Javascript第二次输出 以下场景也是如此
var x = {
'first':[
'ab',
'abc',
],
'second':[
'sia',
'sss'
],
'third':[
'jp',
'jh'
]
};
如您所见,我有一个包含数组的对象
假设我得到了sss的值。。。。我正试图弄清楚,当给定适当的值时,如何让Javascript第二次输出
以下场景也是如此
third for jp
third for jh
first for abc
依此类推。一种可能性,其中x是对象,y是所需的数组值:
function foo(y) {
for (key in x) {
if (x[key].indexOf(y) > -1) {
return key;
}
}
}
你知道吗。我一点击提交问题,就意识到该怎么做了
var x = {
'first':[
'ab','abc',
],
'second':[
'sia','sss'
],
'third':[
'jp','jh',
]
};
for(var arr in x) {
var theArr = x[arr];
if(theArr.indexOf("sss") !== -1) console.log(arr) // returns "second"
}
这将在其数组中找到第一个具有您正在搜索的值的键
function myFunction(searchValue, myObject){
for(var i in myObject){
if(myObject.hasOwnProperty(i) && myObject[i].indexOf(searchValue) != -1){
return i;
}
}
}
如果要排除原型链中的属性,请使用hasOwnProperty函数:
for (var property in obj) {
if (obj.hasOwnProperty(property)) {
console.log('property: ' + property + ' value: ' + obj[property]);
}
}
in操作符将遍历原型链并返回对象中的所有属性
var x = {
'first':[
'ab',
'abc',
],
'second':[
'sia',
'sss'
],
'third':[
'jp',
'jh'
]
};
var result = Object.keys(x).filter(function(key) {
return x[key].indexOf('sss') > -1;
});
之后,结果将是一个数组,其中包含包含值sss的所有键,因此如果存在重复项,它可以是0、1或更多。您需要对对象使用递归函数,并在到达属性/值时返回深度计数器,这非常简单,你有没有尝试过任何不起作用的方法?快速谷歌搜索给我至少20个可行的点击,回答了你的问题。虽然这个论坛是为了提供答案-你需要先自己搜索答案。这里有一个小推-只要看看的呵呵!我喜欢有无数种方法可以解决这个问题,我们都在10秒内想出了完全相同的方法