How to check if array contains at least one object ?

前端 未结 5 1784
余生分开走
余生分开走 2021-02-08 13:04

I want to check if array contains object or not. I am not trying to compare values just want to check in my array if object is present or not?

Ex.

$arr =         


        
相关标签:
5条回答
  • 2021-02-08 13:32

    With a type check on array

    const hasObject = a => Array.isArray(a) && a.some(val => typeof val === 'object')
    
    0 讨论(0)
  • 2021-02-08 13:34

    I want to check if array contains object or not

    Use some to simply check if any item of the array has value of type "object"

    var hasObject = $arr.some( function(val){
       return typeof val == "object";
    });
    
    0 讨论(0)
  • 2021-02-08 13:40

    You could count the objects and use it for one of the three types to return.

    function getType(array) {
        var count = array.reduce(function (r, a) {
            return r + (typeof a === 'object');
        }, 0);
        
        return count === array.length
            ? 'array of objects'
            : count
                ? 'mix values'
                : 'normal';
    }
    
    console.log([
        ['a', 'b', 'c'],
        [{ id: 1 }, { id: 2 }],
        [{ id: 1 }, { id: 2 }, 'a', 'b']
    ].map(getType));

    0 讨论(0)
  • 2021-02-08 13:44

    You can use some method which tests whether at least one element in the array passes the test implemented by the provided function.

    let arr = [{id: 1}, {id:2}, 'a', 'b'];
    let exists = arr.some(a => typeof a == 'object');
    console.log(exists);

    0 讨论(0)
  • 2021-02-08 13:45

    var hasObject = function(arr) {
      for (var i=0; i<arr.length; i++) {
        if (typeof arr[i] == 'object') {
          return true;
        }
      }
      return false;
    };
    
    console.log(hasObject(['a','b','c']));
    console.log(hasObject([{ id: 1}, {id: 2}]));
    console.log(hasObject([{id: 1}, {id:2}, 'a', 'b']));

    0 讨论(0)
提交回复
热议问题