JS基础知识(2)-数组

JS数组

JS数组用于在单一变量中存储多个值

创建数组

1.使用数组文本是创建JS数组最简单的方法

语法:

var array-name = [item1, item2, ...];

eg:

var cars = ["Saab", "Volvo", "BMW"];
//空格和折行并不重要。声明可横跨多行:
var cars = [
    "Saab",
    "Volvo",
    "BMW"
];

请不要在最后一个元素之后写逗号(比如“BMW”,)。可能会存在跨浏览器兼容性问题

2. 使用JS关键词new

下面的例子也会创建数组,并且赋值:

var cars=new Array("Ass","ass")

出于简洁、可读性和执行速度的考虑,请使用第一种方法(数组文本方法)。

访问数组元素

我们通过引用索引号(下标号)来引用某个数组元素。
访问cars首个元素的值:

var name = cars[0];

修改数组元素:

修改cars首个元素

cars[0] = "Opel";

访问完整数组

通过JS,可以通过引用数组名来访问完整数组

var cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars; 

数组是对象

数组是一种特殊类型的对象
在JS中对数组使用typeOf运算符会返回“object”

数组元素可以是对象:

JavaScript 变量可以是对象。数组是特殊类型的对象。

正因如此,您可以在相同数组中存放不同类型的变量。

您可以在数组保存对象。您可以在数组中保存函数。你甚至可以在数组中保存数组:

myArray[0] = Date.now;
myArray[1] = myFunction;
myArray[2] = myCars;

数组属性和方法:

JS数组的真实力量隐藏在数组的属性和方法中:

var x=cars.length; //length属性返回元素的数量
var y=cars.sort();  //sort()方法对数组进行排序

length属性:

length属性返回数组的长度(数组元素的数目)

var cars=["a","b"];
cars.length;   //cars长度是2
访问数组最后一个元素
var last=cars[cars.length-1]

遍历数组元素

  1. 遍历数组元素使用的是for循环
var cars,text,Len,i;
cars=["A","B","C"];
Len=cars.length;
text="<ul>"
for(i=0;i<Len;i++){
   
	text+="<li>"+cars[i]+"</li>";
}
text+="</ul>";
  1. 也可以使用Array.forEach()函数
var cars,text;
cars=["A","B","C"];
text="<ul>";
cars.forEach(myFunction);
text+="</ul>";
function myFunction(value){
   
	text+="<li>"+value+"</li>";
	}

添加数组元素

向数组添加新元素的最佳方法是使用push()方法

  1. 使用push()方法:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Lemon");                // 向 fruits 添加一个新元素 (Lemon)
  1. 使用length属性向数组添加新的元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[fruits.length] = "Lemon";     // 向 fruits 添加一个新元素 (Lemon)

**alert:**添加最高索引的元素可以在数组总创建未定义的“洞”;

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[6] = "Lemon";                 // 向 fruits 添加一个新元素 (Lemon)

注意:fruits[4]和fruits[5]为undefined;

关联数组

很多编程元素支持命名索引的数组。

具有命名索引的数组被称为关联数组(或散列)。

JavaScript 不支持命名索引的数组。

在 JavaScript 中,数组只能使用数字索引。

数组和对象的区别:

  • 在JS中,数组用数字索引
  • 在JS中,对象用命名索引
  • 数组是特殊类型的对象,具有数字索引

何时使用数组?何时使用对象?

  • JS不支持关联数组
  • 若希望元素名是字符串(文本)则应该使用对象
  • 如希望元素名是数字,则应该使用数组

不要使用new()创建数组

  • 会使代码复杂化,也会产生不可预计的后果
    eg:
var cars=new Array(40)
//不是创建40元素的数组,而是创建了含有40个未定义(undefined)元素的数组

如何识别数组?

问题:JS的typeof运算符返回的数组类型为"object“

  1. 解决方案
    ECMAAcript定义网络新的方法Array.isArray():
cars=["A"."B","C"];
Array.isArray(cars);

**注释:**此方案的问题在于ECMAScript不支持老的浏览器

  1. 解决方案
    创建自己的isArray() 函数以解决此问题:
function isArray(x){
   
	return x.constructor.toString().indexof("Array") > -1
}

若参数是数组,则上面的函数始终返回true;
假如对象原型包含单词“Array”则返回true

  1. 解决方案
    假设对象是由给定的构造器创建,则instanceof 运算符返回true:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
 
fruits instanceof Array     // 返回 true

JS数组方法:

将数组转换成字符串:

  1. JS方法toString() 把数组转换为数组值(逗号分隔)的字符串:
    eg:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.toString(); 
//输出Banana,Orange,Apple,Mango
  1. join() 方法也可以将数组元素结合成为一个字符串。
    行为类似于toSring(),但是join()还可以规定分隔符;
var fruits = ["Banana", "Orange","Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值