如何在不使用javascript循环的情况下检查数组中的id?

时间:2018-04-11 08:48:10

标签: javascript jquery arrays loops object

我试着这样:

<script type="text/javascript">
    var clubs = [ 
        {id: 1, name : 'chelsea'},
        {id: 2, name : 'city'},
        {id: 3, name : 'liverpool'},
        {id: 4, name : 'manchester united'},
        {id: 5, name : 'arsenal'}
    ];
    var selectedId = 3;
    if(clubs.includes(selectedId))
        console.log('The selected id exist');
    else
        console.log('The selected id does not exist');
</script>

但它不起作用。我只在俱乐部阵列是一维阵列

时才有效

我该如何解决?

我想用一个陈述来做。没有循环

3 个答案:

答案 0 :(得分:1)

看看这是否有帮助。

&#13;
&#13;
var clubs = [{id: 1, name: 'chelsea'},
     {id: 2, name: 'city'},
     {id: 3, name: 'liverpool'},
     {id: 4, name: 'manchester united'},
     {id: 5, name: 'arsenal'}];

   var selectedId = 3;

   var exist = clubs.some(function(obj) { 
     return obj.id === selectedId;
   });

   if(exist) {
     console.log("Exist");
   }
   else{
     console.log("Not Exist");
   }
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你可以使用.some()解决这个问题,正如Mohammad所指出的那样,但你需要传递一个函数,以便它可以迭代遍历每个对象(some()和includes()是循环函数): / p>

https://jsfiddle.net/bdju9gLd/

FROM python:3.6

RUN mkdir /code  
WORKDIR /code  
ADD . /code/  
RUN pip install -r requirements.txt  

EXPOSE 5000  
CMD ["python", "/code/test.py"]`

答案 2 :(得分:0)

我认为如果你想保持目前的结构,你必须循环。 无论如何,如果你可以进行这个小改动,我建议添加id作为obj的键

var clubs = {
    4: {id: 1, name : 'chelsea'},
    3: {id: 3, name : 'city'},
};
var selectedId = 3;
if(selectedId in clubs) alert('yes')

从上面的示例中可以看出,在这种情况下会显示一个警告,因为它会找到以3为键的obj。

var clubs = {
    4: {id: 1, name : 'city0'},
    8: {id: 8, name : 'city1'},
    9: {id: 9, name : 'city2'},
    10: {id: 10, name : 'city3'},
    11: {id: 11, name : 'city4'},
};
var selectedId = 3;
if(selectedId in clubs) alert('yes')

在这种情况下,没有任何内容会显示,因为没有键3

如果你可以编辑俱乐部的结构,这是一个可能的解决方案。