从对象数组中检索数组值

这个问题在这里已经有了答案:

  • 在JavaScript中循环访问数组35个答案

  • 你可以使用array#some

    some()方法测试数组中是否至少有一个元素传递了由提供的函数实现的测试。

    var arrayFullNames = [{ name: 'David', surname: 'Jones', age: 29 }, { name: 'Jack', surname: 'Sparrow', age: 33 }, { name: 'Monkey', surname: 'Idontknow', age: 9 }, { name: 'JavaScript', surname: 'Something', age: '6 weeks' } ];
    
    function onRegister() {
      var userQuestion = prompt("What is your name", '');
      if (arrayFullNames.some(({name}) => name === userQuestion)) {
        alert('name match');
      } else {
        alert('no match');
      }
    }
    onRegister()

    你可以使用array.indexOf函数来解决这个问题:

    if (arrayFullNames.indexOf(function(obj) { 
      return userQuestion == obj.name;
    }) > -1) {
      alert('name match');
    } else {
      alert('no match');
    }
    

    如果数组中没有匹配, indexOf返回-1,否则返回匹配的索引。

    你也可以用类似的方式使用array.includes。


    数组基于不像对象的索引。 尝试以下操作

    var arrayFullNames = [
        {name: 'David', surname: 'Jones', age: 29},
        {name: 'Jack', surname: 'Sparrow', age: 33},
        {name: 'Monkey', surname: 'Idontknow', age: 9},
        {name: 'JavaScript' , surname: 'Something', age: '6 weeks'}
    ];
    
    function onRegister(){
      var userQuestion = prompt("What is your name", '');
      for(var i=0; i< arrayFullNames.length; i++){
        if(userQuestion == arrayFullNames[i].name){
          alert('name match');
          return true;
        }
      }
      alert('no match');
      return false;
    }
    
    链接地址: http://www.djcxy.com/p/24543.html

    上一篇: Retrieving array value from object array

    下一篇: getElementsbyClassName to find and act on all elements