簡體   English   中英

如何在JavaScript中遍歷此數組?

[英]How can I loop through this array in javascript?

我試圖遍歷此數組,但它不返回任何長度。 可能嗎?

謝謝!

<!DOCTYPE html>
<html>
  <body>
    <button onclick="myFunction()">click</button>
    <script>
      function myFunction()
      {
        var fruits = [];
        fruits["B"] = "Banana";
        fruits["A"] = "Apple";
        fruits["O"] = "Orange";

        delete fruits["A"];

        alert(fruits["A"]); // Alerts "undefined"
        alert(fruits["B"]); // Alerts "Banana"
        alert(fruits.length); // Alerts "0"
      }
    </script>

  </body>
</html>

數組只能有數字索引。 當您寫fruits["B"] = "Banana"; 您正在為對象分配屬性(數組是對象),而不是向數組添加項目。

您可以使用帶有數字索引的數組,也可以使用帶有字符串鍵的對象:

var fruits = [];
fruits.push("Banana");
alert(fruits[0]); // "Banana"

var fruits = {};
fruits["B"] = "Banana";
alert(fruits["B"]); // "Banana"

如果需要對象的長度,請使用Object.keys(fruits).length; 文件

看起來您想要一個對象而不是數組,因此可以通過鍵訪問元素:

var fruits = {
    a : 'apple',
    b : 'banana'
};

fruits.a //apple
fruits['b'] //banana

那么您可以通過按鍵遍歷它們:

for( var item in fruits ){
    fruits[ item ];
}

需要注意的一件事是,這將循環遍歷水果中的所有鍵及其繼承的任何對象(在我的示例中,這是唯一的object.prototype)。 如果要小心,可以使用hasOwnProperty方法來確保該屬性存在於fruits對象上,而不是其任何原型上:

for( var item in fruits ){

    if( fruits.hasOwnProperty( item ) ){
        fruits[ item ];
    }
}

您正在尋找的是一個JavaScript對象。 如果將水果變量聲明為對象文字,則可以執行所需的操作。

var fruits = {};
fruits["B"] = "Banana"; // Can also do this as fruits.B = "Banana";
fruits["A"] = "Apple";
etc.

然后,執行alert(fruits["A"])會給您一條警告消息,您可以根據需要說“ Apple”。 但是,JavaScript對象沒有length屬性,但是您可以執行Object.keys(fruits) ,該操作將返回fruit變量的鍵的數組,然后可以訪問該length屬性。

您不能像這樣聲明數組。您需要使用new關鍵字聲明數組

var Fruit=new Array("Banana","Apple","Orange");

那么你可以像這樣訪問

 alert(Fruit[0]);//Banana
    alert(Fruit[1]);//Apple
    alert(Fruit[2]);/Orange

希望這會起作用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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