javascript对象的数组中
我试图用对象设置inArray,但它不起作用javascript对象的数组中,javascript,arrays,object,Javascript,Arrays,Object,我试图用对象设置inArray,但它不起作用 var test = {aa:1, bb:0} console.log($.inArray(1,test)) 我总是有-1 谢谢在您的代码中,您正在执行其他操作。实际上,您正在尝试创建一个对象,它具有属性aa和bb。按键为aa和bb非0,1。您可以尝试以下方法: var test = { aa:1, bb:0 }; console.log('aa' in test); //true 如果您希望您的密钥为0和1,您可以尝试: var test =
var test = {aa:1, bb:0}
console.log($.inArray(1,test))
我总是有-1
谢谢在您的代码中,您正在执行其他操作。实际上,您正在尝试创建一个对象,它具有属性
aa
和bb
。按键为aa
和bb
非0
,1
。您可以尝试以下方法:
var test = { aa:1, bb:0 };
console.log('aa' in test); //true
如果您希望您的密钥为0
和1
,您可以尝试:
var test = { 1: 'aa', 0: 'bb' };
console.log(1 in test); //true
您还可以:
var test = { 1: 'aa', 0: 'bb' };
console.log(test['1']); //"aa"
如果要检查对象是否仅包含一个值:
function containsValue(obj, key) {
for (var prop in obj) {
if (obj[prop] === key) {
return true;
}
}
return false;
}
var test = { aa:1, bb:0 };
console.log(containsValue(test, 1)); //true
$。inArray
设计用于阵列。它不能像您已经了解的那样正确地处理对象(无论在什么情况下,它都返回-1)。说到对象,您用来创建对象文字的语法格式不正确,它不是写为{a=b}
,而是写为{a:b}
。以下是一个例子:
var test = { aa: 1, bb: 0 };
我还看到,您试图找到一个对象的属性是否具有某个值,而不是该对象是否具有该属性。如果是后一种情况,我们将在关键字中使用,或者使用.hasOwnProperty
函数。但是我们需要为你的案子做我们自己的功能。试试这个:
var inObject = function( obj, val ) {
for ( var i in obj ) {
if ( obj.hasOwnProperty(i) ) {
if ( obj[i] === val ) return true;
}
}
return false;
};
我们将这样使用它:
>>> var test = { aa: 1, bb: 0 };
>>> inObject( test, 1 );
true
那是因为那不是一个数组。它也不是一个对象,因为test
不是一个数组。数组看起来像var test=[1,0,…]
-javascript中不能有关联数组。@cale\b javascript中可以有关联数组。它们被称为ObjectsYes,但我发布了一个解决方案来测试我的数组中是否有1个exemple@ant{aa:1,bb:0}
不是数组。它是一个对象。是的,它不是。这就是我编辑它的原因,在我的回答中它是:{aa:1,bb:0}代码>:-)是的,但这是一个ajax结果,我无法轻松更改它。因此,您正在发出一个ajax请求,该请求返回给您{aa=1,bb=0}
?@ant您是否试图检测对象是否包含特定值?您想知道1
是否是对象属性的值?
>>> var test = { aa: 1, bb: 0 };
>>> inObject( test, 1 );
true