簡體   English   中英

JavaScript數組長度不起作用

[英]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'
}

在您的示例中,將方括號替換為大括號,您將獲得該對象。

那不是一個ArrayArray是一個簡單的值列表,其中這是鍵到值的映射,即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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM