Sobes.tech
Junior

Бул талаа массив экенин кантип текшерсе болот?

sobes.tech AI

AIден жооп

Берилген талаа массивпи же жокпу текшерүүнүн бир нече жолу бар:

  1. Array.isArray(): Атаандаш жана заманбап ыкма.

    // Маалымат массивпи же жокпу текшерет.
    // true же false кайтарат.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('текст'); // false
    
  2. instanceof Array: Учурдагы рамкада түзүлгөн массивдер үчүн иштейт.

    // Объекттин Array классынын үлгүсү экенин текшерет.
    // iframe менен иштөөдө туура эмес натыйжалар бере алат.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Ишенимдүү ыкма, ал instanceof маселелерин чечет.

    // Объекттин түрүн сапта көрсөтөт.
    // Массивдер үчүн "[object Array]" кайтарат.
    Object.prototype.toString.call([]); // "[object Array]"
    Object.prototype.toString.call({}); // "[object Object]"
    Object.prototype.toString.call(null); // "[object Null]"
    Object.prototype.toString.call(undefined); // "[object Undefined]"
    
  4. constructor мүчөсүн текшерүү: Ашыкча ишенимдүү эмес, анткени constructor өзгөртүлүшү мүмкүн.

    // Объекттин `constructor`'ы Array экенин текшерет.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

Көп учурда эң сунушталган жана ишенимдүү ыкма — Array.isArray() колдонуу.