常用数组的方法记载
数组是用来存放一系列数据的容器。
最基本的方法
定义数组
数组里面可以放很多数据类型,包括undefined、 null 、函数、NaN…
注意返回类型(typeof arr[i])自己试试。
var arr = ["a","b","c","d"];//直接定义数组和内部成员
var arr1 = new Array();//定义一个空数组
var arr2 = new Array(10);//如果数组内填一个数字,则表示该数组为长度为10的空的数组
var arr3 = new Array(1, 2);//如果参数有多个,每一个参数表示该数组的成员。
var nameArr = ["张三", "李四", "王五", "赵六"];
// 对应的下标 0 1 2 3
// 想要访问 "王五"
console.log(nameArr[2]);
//数组的length属性
// 该属性决定数组的长度 可以访问 可以设置
console.log(nameArr.length);
- push
向数组的尾部添加一个成员
var arr = new Array();
arr.push("a");
//var result = arr.push("a");
//返回值是result是数组长度
pop
它的作用是将数组的最后一项移除并返回 会改变原数组
var arr = ["a","b","c","d","e","f"];
arr.pop();
//var result = arr.pop();
//返回值是result是删除的最后一项f
unshift
它的作用是给数组的头部增加一个新成员 并返回数组的长度
var arr = ["a","b","c","d","e","f"];
arr.unshift("x");
//var result = arr.unshift("x");
//返回值是result是数组长度
shift
它的作用是将数组的头部第一项移除 并返回
var arr = ["a","b","c","d","e","f"];
arr.shift();
//var result = arr.shift();
//返回值是result是a
concat
concat 数组的拼接方法 两个数组合并成一个
var arr = [1, 2, 3];
// 调用concat方法 拼接新数组
var result = arr.concat([4, 5, 6]);
console.log(arr);
console.log(result);
// concat方法的作用是将两个数组拼合成一个数组 参数是拼合的另外一个数组
// 注:不会改变原数组 而是生成一个新数组并返回
sort
排序 接受一个函数作为参数 该函数有两个形参 分别代表数组内的两个数字
如果该函数的返回值为a - b 则数组从小到大排序
如果该函数返回的是b - a 则数组从大到小排序
如果该函数返回的是小于0 则数组倒序,类似reverse()方法
var arr = ["a","b","c","d","e","f"];
var arr1 = arr.sort(function(a, b) {
return b-a;
});
console.log(arr1);
slice
数组的截取方法,截取数组中的一段内容,它可以传递两个参数 一个参数 不传参数
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
// 它可以传递两个参数 一个参数 不传参数
var arr1 = arr.slice(1, 2); // 从下标1的成员截取到下标2的成员 将它们装在一个新数组中 返回这个新数组
var arr2 = arr.slice(3); // 从下标3的位置 截取到最后 并放在新数组中返回
var arr3 = arr.slice(); // 截取所有原数组的成员并放在新数组中返回
console.log(arr1); // [2]
console.log(arr2); // [4, 5, 6, 7, 8]
console.log(arr3); // [1, 2, 3, 4, 5, 6, 7, 8]
var arr4 = arr.slice(-5, -1); // 负数的意思是从后往前数 从-1开始
var arr5 = arr.slice(-5); // 负数的意思是从后往前数 从-1开始 因为没有第二个参数 会截取到最后
//特点: 必须要求第一个参数 比第二个参数 要小
//特点: slice方法不会改变原数组
splice
splice 该方法可以用于修改数组 向数组中添加内容 删除数组成员
// splice 该方法可以用于修改数组 向数组中添加内容 删除数组成员
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// 删除数组成员 如果要删除9 也就是数组的最后一项
// arr.length--;
// arr.length = arr.length - 1;
arr.splice(8, 1); 从下标8的位置开始删除 删除1个 不增
// 将4 5 6这几个成员删除
// var arr1 = arr.splice(3, 3);
在5和6这两个成员之间插入一些数据 10 11 12 13
// arr.splice(5, 0, 10, 11, 12, 13);
console.log(arr);
console.log(arr1);
/*
第一个参数表示 从哪个下标位置开始删除 第二个参数表示删除几个
从第三个参数开始 表示要新增的项 从第一个参数所指定的位置开始
返回值:新数组 内部的成员是从原数组中被移除的项 如果没有被移除的项就是空数组
*/
join
// join 方法 它可以以指定的内容作为连接符将数组转为字符串 参数就是连接符 可以不传递 默认为“,”
var arr = [1, 2, 3, 4, 5];
var str = arr.join("+");
console.log(str)//str的类型为string
reverse
将数组内的函数成员倒序
var arr = ["a","b","c","d","e","f"];
var arr1 =arr.reverse();
console.log(arr1);//["f", "e", "d", "c", "b", "a"]
这只是其中的一部分常用方法。关于js数组的方法还有很多。。。。
二维数组
用一个题目看吧。
通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数试编程。
[
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]
]
var arr = new Array();
var x=1;
for(var i=0;i<5;i++){
arr[i]= Array();
for(var j=0;j<5;j++){
arr[i][j]=x;
x++;
}
}
console.log(arr);
arguments
arguments是函数的内置对象
只能够在函数内部使用
作用: 函数在执行的时候,获取每一个实际参数
它是一个类数组对象/伪数组
特点1: 可以使用arguments[数字] 来获取每一个内部的成员(实参)
特点2: 可以使用length属性来获取成员(实参)的个数
function demo() {
console.log(arguments);
}
// 函数调用
demo(); // => []
demo(1); // => [1]
demo("a", "b"); // => ["a", "b"];