[英]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.