[英]Javascript array length not working
所以我有這個數組:
[first_name: false, last_name: false, email: false, month: false, day: false, year: false, password: false, password2: false]
現在,如果我執行此console.log(arrayName.length)
,它將返回0; 為什么? 我做錯了什么?
// LE
這是我的方法:
var errors = {};
$('.register-front').delegate('button','click',function(){
var $this = $(this).parent().parent().parent();
$this.find('input,select').each(function(){
if(!$(this).val() || ($(this).val() == '-1'))
{
errors[$(this).attr('name')] = false;
}
});
console.log(errors.length);
return false;
});
我進行了一些更改,但仍然不了解...。
您的表示法似乎很奇怪。 方括號用於數組,但內容是對象屬性/值表示法。 我認為那行不通。 您可以通過將{}
[]
替換為{}
來將表達式轉換為對象,但是對象沒有長度。 您可以使用以下方法獲取對象中的鍵數:
Object.keys(obj).length
另外,您可以使用以下方法遍歷對象鍵:
for (var key in obj) {
. . .
}
編輯對於您添加的特定代碼,您可以替換此行:
console.log(errors.length);
與:
console.log(Object.keys(errors).length);
在JavaScript中,類似關聯數組的結構是Object:
{
lorem: 'ipsum',
dolor: 'amet'
}
在您的示例中,將方括號替換為大括號,您將獲得該對象。
那不是一個Array
, Array
是一個簡單的值列表,其中這是鍵到值的映射,即Object
。 您的意思是做類似的事情:
var myObject = { first_name: false, last_name: false, email: false, month: false, day: false, year: false, password: false, password2: false }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.