JS数组
<body>
<script>
//什么是数组
//数组是一种特殊的变量,它能够一次存放一个以上的值
//数组可以用一个单一的名称存放很多值
//数组元素可以是一个字符串,数字,数组,布尔等其他类型。
//并且还可以通过引用索引号来访问这些值。
//语法
//var name=[item1,item2,......];
//第一种
var carsl=["Saab","Volvo",'porsche']
document.write('第一种'+carsl+'<br>')
//空格和折行符并不重要。声明可横跨多行,
//请不要最后一个元素之后写逗号,可能存在跨浏览器兼容性问题。
var carsll = [
"Saab",
"Volvo",
'porsche'
];
document.write('第一种'+carsl+'<br>')
//第二种,使用new关键词
var cars2 = new Array("Saab","Volvo","BMW");
document.write('第二种'+cars2+'<br>')
//简洁、可读性和执行速度的考虑,请使用第一种方法(数组文本方法)。
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
//访位数组
//通过引用索引号(下标号)来引用某个数组元素。[0] 是数组中的第一个元素。[1] 是第二个。数组索引从 0 开始。
var cars = ["Audi","BMW","porsche"];
console.log(cars[2]);
console.log(cars[3]); //返回undefined
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
//数组是一种特殊类型的对象。通过typeof运算符会返回"object"。object对象
var arr=[0,1,'a']
console.log(typeof(arr));
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
//改变数组元素
var cars = ["Audi","BMW","Porsche"];
document.write (cars+"<br>");
cars[0] = "Volvo";
document.write (cars+"<br>"); //访问完整数组
document.write (cars[0]);
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
//length 属性返回数组长度。length 属性始终大于最高数组索引(下标)
var fruits = ["Banana","Orange","Apple","Mango"];
console.log(fruits.length) ;
console.log(fruits[fruits.length-1]); //访问最后一个数组元素
//length添加元素
fruits[fruits.length] = "lemon";
document.write(fruits);
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
//通过for循环遍历数组元素
var fruits = ["Banana","Orange","Apple","Mango"];
var fruits_ = fruits.length;
var text="";
for (var i = 0; i < fruits_; i++){
text += fruits[i]+'<br>';
}
document.write(text+'<br>');
//for in
for (var p in fruits){ //遍历数组和对象
document.write(p+'<br>') //p遍历下标,
document.write(fruits[p] + "<br>");
}
//forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。对于空数组是不会执行回调函数的。
//回调函数(callback)是以一个以形参形式传递给另一个函数的函数,并且该函数必须等另一个函数执行完才会被调用
var text = "";
fruits.forEach(myFunction);
document.write(text);
function myFunction(value) {
text += value + "<br>";
}
console.log(typeof fruits.forEach);
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
//关联数组:在Javascript中,数组只能使用数组索引。
var person = [];
person[0] = "John";
person[1] = "Doe";
person[2] = 46;
person[2] = 36;
document.write(person);
document.write(person[0] + " " + person.length);
//如果在访问数组时使用命名索引,JavaScript会将数组重新定义
//为标准对象,并且某些数组方法和属性将产生未定义或不正确的结果。
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
document.write(person[0] + " " + person.length);
//数组使用数字索引,对象使用命名索引。数组是特殊类型的对象,具有数字索引。
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
//isArray识别数组
var fruits = ["Banana","Orange","Apple","Mango"];
alert(Array.isArray(fruits)); //语法:Array.isArray(obj)
</script>
</body>