JavaScript数组
声明数组
- 通过new创建数组
- 省略new运算符创建数组
- 数组常量进行赋值。(JS一般使用中括号[]);
var arr = new Array(100, true, "hello");
var arr = Array(100, true, "hello");
var arr = [100, true, "hello"];
//声明长度为10的数组,数组中没有数据。
var arr = new Array(10);
var arr = Array(10);
数组的属性:
- 数组.length 返回值数组【元素】的个数。
元素:
-
访问数组的元素:
-
数组[下标]; 下标是从0开始的。
-
数组和循环是天生一对。
- for循环
- for…in循环 快速遍历
Math.random() 随机数
var random = new Array(10);
for(var i = 0; i<10;i++){
random[i]=parseInt(Math.random()*10);
}
document.write(random);
for (var i in random){
document.write(random[i]+"<br/>");
}
数组的方法
-
栈结构
- push
- 功能:给数组的末尾添加元素。
- 格式:数组.push(参数1, 参数2…);
- 返回值:插完元素以后数组的长度。
- pop
- 功能:从数组末尾取下一个元素
- 格式:数组.pop()
- 参数:没有参数
- 返回值:取下一个元素
- push
-
队列
- push
- shift
- 功能:从数组的头部取下一个元素
- 格式:数组.shift()
- 参数:没有参数
- 返回值:取下的元素
- unshift
- 功能:从数组的头部插入元素
- 格式:数组.unshift(参数1, 参数2…)
- 返回值:插完元素以后数组的长度。
-
reverse 逆序
-
sort
- 功能:默认从小到大排序,按照字符串排序。
- 格式:数组.sort()
- 参数:一个函数,代表要怎么去进行排序(固定用法)
-
按照数字从小到大
arr.sort(function(value1, value2){ return value1 - value2; })
-
按照数字从大到小
arr.sort(function(value1, value2){ return value2 - value1; })
-
-
splice()
- 功能:可以完成 增、删、改三个功能
- 格式:数组.splice(start, length, 数据1, 数据2…);
- 参数:
- start 开始截取的位置
- length 截取的元素的长度
- 第三个参数开始:在start位置,插入的元素。
- 返回值:截取下来的元素组成的数组。
-
concat
- 功能:拷贝数组,生成一个新数组(不会修改原数组)
- 合并数组,如果参数是数组,数组中元素单独合并
-
slice
- 功能:数组提取元素(不会修改原数组)
- 格式:数组.slice(start, end); [start, end)
-
join()
- 功能:将数组中的元素,用传入的拼接符,拼接成一个字符串
- 格式:数组.join(“字符串”)
- 返回值:拼接好的字符串。
// 创建数组
var countries = new Array("china", "usa", "uk", 'japan');
document.write(countries + "<br/>");
// china, usa, uk, japan
//栈结构
/* push
功能:给数组的末尾添加元素。
格式:数组.push(参数1, 参数2…);
返回值:插完元素以后数组的长度。 */
document.write("push返回值:" + countries.push("korea", "russia") + " 原数组:" + countries + "<br/>")
// push返回值:6 原数组:china, usa, uk, japan, korea, russia
/* pop
功能:从数组末尾取下一个元素
格式:数组.pop()
参数:没有参数
返回值:取下一个元素 */
document.write("pop返回值:" + countries.pop() + " 原数组:" + countries + "<br/>")
// pop返回值:russia 原数组:china, usa, uk, japan, korea
//队列
// push
/* shift
功能:从数组的头部取下一个元素
格式:数组.shift()
参数:没有参数
返回值:取下的元素 */
document.write("shift返回值:" + countries.shift() + " 原数组:" + countries + "<br/>")
// shift返回值:china 原数组:usa, uk, japan, korea
/* unshift
功能:从数组的头部插入元素
格式:数组.unshift(参数1, 参数2…)
返回值:插完元素以后数组的长度。 */
document.write("unshift返回值:" + countries.unshift("thailand") + " 原数组:" + countries + "<br/>")
// unshift返回值:5 原数组:thailand, usa, uk, japan, korea
// 1.concat() 方法可以基于当前数组创建一个新数组。
var co = [1, 2, 3]
document.write("concat返回值:" + countries.concat() + " 原数组:" + countries + "<br/>")
// concat返回值:thailand, usa, uk, japan, korea 原数组:thailand, usa, uk, japan, korea
document.write("concat返回值:" + countries.concat(co) + " 原数组:" + countries + "<br/>")
// concat返回值:thailand, usa, uk, japan, korea, 1, 2, 3 原数组:thailand, usa, uk, japan, korea
// 2.slice() 方法可以基于当前数组获取指定区域元素[start, end)
document.write("slice返回值:" + countries.slice(0, 2) + " 原数组:" + countries + "<br/>")
// slice返回值:thailand, usa 原数组:thailand, usa, uk, japan, korea
// 3.splice() 方法由于其参数的特殊性,可以完成 增、删、改三个功能
document.write("splice返回值:" + countries.splice(1, 0, "india") + " 原数组:" + countries + "<br/>")
// splice返回值: 原数组:thailand, india, usa, uk, japan, korea
document.write("splice返回值:" + countries.splice(1, 2) + " 原数组:" + countries + "<br/>")
// splice返回值:india, usa 原数组:thailand, uk, japan, korea
document.write("solice返回值:" + countries.splice(0, 1, "poland") + " 原数组:" + countries + "<br/>")
// solice返回值:thailand 原数组:poland, uk, japan, korea
// 4.join() 方法用数组元素组成字符串。
document.write("join返回值:" + countries.join("-") + " 原数组:" + countries + "<br/>")
// join返回值:poland - uk - japan - korea 原数组:poland, uk, japan, korea
// 5.reverse() 逆向排序
document.write("reverse返回值:" + co.reverse() + " 原数组:" + co + "<br/>")
// reverse返回值:3, 2, 1 原数组:3, 2, 1
// 6.sort() 从小到大排序,字符串排序
document.write("sort返回值:" + co.sort() + " 原数组:" + co + "<br/>")
// sort返回值:1, 2, 3 原数组:1, 2, 3
document.write("sort返回值:" + co.sort(function (value1, value2) { return value1 - value2 }) + " 原数组:" + co + "<br/>")
// sort返回值:1, 2, 3 原数组:1, 2, 3
document.write("sort返回值:" + co.sort(function (value1, value2) { return value2 - value1 }) + " 原数组:" + co + "<br/>")
// sort返回值:3, 2, 1 原数组:3, 2, 1