How to check if an object is an array?

后端 未结 30 2994
名媛妹妹
名媛妹妹 2020-11-21 06:31

I\'m trying to write a function that either accepts a list of strings, or a single string. If it\'s a string, then I want to convert it to an array with just the one item so

30条回答
  •  闹比i
    闹比i (楼主)
    2020-11-21 07:06

    The best solution I've seen is a cross-browser replacement for typeof. Check Angus Croll's solution here.

    The TL;DR version is below, but the article is a great discussion of the issue so you should read it if you have time.

    Object.toType = function(obj) {
        return ({}).toString.call(obj).match(/\s([a-z|A-Z]+)/)[1].toLowerCase();
    }
    // ... and usage:
    Object.toType([1,2,3]); //"array" (all browsers)
    
    // or to test...
    var shouldBeAnArray = [1,2,3];
    if(Object.toType(shouldBeAnArray) === 'array'){/* do stuff */};
    

提交回复
热议问题