2016-08-29 1 views
4

Моей функции:Как решить этот «неперехваченный TypeError: Не удается преобразовать неопределенным значение или нуль объекта»

function collect_que_ids(e) { 
    var val = e.val(); 
    var data_lo = e.attr('data-lo'); 
    new_hash = {}; 
    new_hash[val] = data_lo; 
    if(e.is(':checked')){ 
    if(checked_box_hash.includes(new_hash)){ 
     checked_box_hash; 
    }else{ 
     checked_box_hash.push(new_hash); 
    } 
    } 
    else{ 
    new_hash_key = Object.keys(new_hash)[0] 
    new_hash_value = new_hash[new_hash_key] 
    $.each(checked_box_hash, function(key, value){ 
     if (typeof Object.keys(value) !== 'nil') { 
     current_key = Object.keys(value) 
     if (current_key[0] == new_hash_key && value[current_key[0]] == new_hash_value) { 
      checked_box_hash.splice(key, 1) 
     } 
     } 
    }) 
    } 
}; 

Я получаю ошибку на этой линии.

if (typeof Object.keys(value) !== 'nil') { 

Необходимо решить. пожалуйста, помогите сделать.

+0

сделать console.log (Object.keys (значение)) и посмотреть, что значение его –

+0

Что вы пытаетесь это сделать? В JavaScript нет типа «нуль». – str

+0

Возможно 'typeof value! == 'undefined' && value && Object.keys (value) .length'? – str

ответ

5

Object.keys(value) возвращает массив и проверить, если он не определен или пустой ли это

if (typeof Object.keys(value) !== 'undefined' && Object.keys(value).length > 0) { 
     // You have an array 
    } 
Смежные вопросы

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