2016-02-20 1 views
1

Предположим, у меня есть класс javascript Connection и у меня есть переменная, которая должна содержать массив объекта Connection.Как проверить эту переменную Массив объектов, определенных в Javascript

Как проверить переменную?

+1

Вы можете уточнить? Непонятно, о чем вы спрашиваете. – pablochan

+1

Пожалуйста, разместите код, содержащий пример того, чего вы пытаетесь достичь, и объясните, как вы хотите проверить эту переменную. См. [Как спросить] (http://stackoverflow.com/help/how-to-ask) – Rhumborl

ответ

1
[your array of Connection].every(elem => elem instanceof Connection); 

Это возвращает true, если все элементы в вашем массиве являются соединениями, false в противном случае

Функция, которая проверяет ваши потребности

function isAllConnections(array) { 
    return array.every(function(elem) { 
     return elem instanceof Connection; 
    }); 
} 
+0

Visual Studio показывает ошибку JS при знаке '=>' –

+0

@ P.K. Это код ES6, я просто обновляю код для ES5, попробуйте его – isvforall

0

Если вы просто хотите проверить, переменная существует и содержит значения:

var myArrayOfConnections = []; 
if(myArrayOfConnections && myArrayOfConnections.length) { 
    //do stuff 
} 

Первая проверка будет оценить, существует ли она, вторая будет проверить длина больше 0

+0

, но как проверить, что каждый элемент является объектом Connection? –

0

Первым делом нужно убедиться, что переменная массива:

  1. Array.isArray(x);
  2. function isArray(x) { return x.constructor.toString().indexOf("Array") > -1;}

  3. x instanceof Array

Затем вы можете проверить каждый элемент в массиве:

for(var i in x) { if(x[i].isPrototypeOf(Connection)) } 
+0

. Я буду тестировать ваше решение завтра, хорошо выглядит :) –

+0

'connectionArray [c] .isPrototypeOf (Connection)' дает мне ложные данные с правильными данными –

Смежные вопросы