如何使用$ .inArray来验证数组对象中的字段

时间:2016-07-19 05:39:42

标签: jquery

我想检查一个名为name的字段的数组,并检查“people array”中是否存在“arraryCollection”中的object.name,如果不存在则会推送“arraryCollection [n] .name。这样的事情。

$.each(arrayCollection, function(i, el) {    
    if ($.inArray(el.name, people.name) === -1) {
       people.push({name: el.name);                                  
    })
})

但是我不能使用people.name,因为它未定义,并且 以下是我要解决的问题 ,但有没有办法直接调用people.name?

var tempList=[];
var people=[];
$.each(arrayCollection, function(i, el) {    
        if ($.inArray(el.name, tempList) === -1) {
           tempList.push(el.name);                                  
        })
    })
$.each(tempList, function(i, tl) {
    people.push({name: tl})
})

换句话说,如何直接调用数组字段的整个集合,如people.name而不是单独的people [n] .name,它只返回1个结果。

2 个答案:

答案 0 :(得分:0)

像这样检查inArray:

<html> <button onclick="submitQuery()"></button> </html> <script> function submitQuery(){ //Do whatever You wish } </script> <script> //Another way $('#fulfillButton').on('click',function(){ //Place code here }); </script> 返回数组中元素的索引,而不是指示数组中是否存在该项的布尔值。如果未找到该元素,则返回-1。

inArray

答案 1 :(得分:0)

$.inArray()方法类似于JavaScript的原生.indexOf()方法,因为它在找不到匹配项时返回-1。如果数组中的第一个元素与value匹配,则$.inArray()返回0.

var testArr= [ 4, "ABC", 8, "John" ];


if($.inArray( "ABC", testArr) > -1 )
{
  console.log('Horray');
}

如果您的js对象有一个键名称&#39;包含数组作为值,然后您可以按照问题中的说明使用它:

var obj= {"name":[ 4, "ABC", 8, "John" ]};


if($.inArray( "ABC", obj.name) > -1 )
{
  console.log('Horray');
}

push()方法将新项添加到数组而不是对象,请确保仅将其用于数组。