Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript对象的数组中_Javascript_Arrays_Object - Fatal编程技术网

javascript对象的数组中

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 =

我试图用对象设置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 = { 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