相比于其他语言的数组,Javascript中的数组条条框框约束较少。
方法名 | 描述 |
---|---|
concat | 连接两个或更多数组,并返回结果 |
every | 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true |
filter | 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组 |
forEach | 对数组中的每一项运行给定函数。这个方法没有返回值 |
join | 将所有的数组元素连接成一个字符串 |
indexOf | 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1 |
lastIndexOf | 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值 |
map | 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组 |
reverse | 颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在的第一个 |
slice | 传入索引值,将数组里对应索引范围内的元素作为新数组返回 |
some | 对数组中的每一项运行给定函数,如果任一项返回true,则返回true |
sort | 按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数 |
toString | 将数组作为字符串返回 |
valueOf | 和toString类似,将数组作为字符串返回 |
方 法 | 描 述 |
---|---|
@@iterator | 返回一个包含数组键值对的迭代器对象,可以通过同步调用得到数组元素的键值对 |
copyWithin | 复制数组中一系列元素到同一数组指定的起始位置 |
entries | 返回包含数组所有键值对的@@iterator |
includes | 如果数组中存在某个元素则返回true,否则返回false。ES7新增 |
find | 根据回调函数给定的条件从数组中查找元素,如果找到则返回该元素 |
findIndex | 根据回调函数给定的条件从数组中查找元素,如果找到则返回该元素在数组中的索引 |
fill | 用静态值填充数组 |
from | 根据已有数组创建一个新数组 |
keys | 返回包含数组所有索引的@@iterator |
of | 根据传入的参数创建一个新数组 |
values | 返回包含数组中所有值的@@iterator |
具体的还是去看书本或者一些文档吧,这里就是简单地踩个点,那么我们直接进入到问题思考环节。
JavaScript本身并不支持二位数组和多维数组,只支持一维数组。但是我们可以像叠罗汉一样,数组加数组来符合预期。
可以看下我封装的例子createMoreMaxtrix:
// 也没看见过三维之外的存在啊,这里就三维吧
function createMoreMaxtrix(dim, num) {
var arr = new Array(num);
switch (dim) {
case 1 :
console.log("一维");
return arr.fill(null);
break;
case 2:
console.log("二维");
for(var i = 0; i < num; i++) {
arr[i] = [];
for(var j = 0; j < num; j++) {
arr[i][j] = null;
}
}
return arr;
break;
case 3:
console.log("三维");
for(var i = 0; i < num; i++) {
arr[i] = [];
for(var j = 0; j < num; j ++) {
arr[i][j] = [];
for(var k = 0; k < num; k++) {
arr[i][j][k] = null;
}
}
}
return arr;
break;
}
}
var arr = createMoreMaxtrix(3, 10);
console.log(arr);
toString()就是把数组转换成字符串,toLocaleString()也是转换成字符串,但是如果是数字的话,它会以“,”帮你标好千分位
var fibonacci = [];
fibonacci[0] = fibonacci[1] = 1;
for(var i = 2; i < 50; i++) {
fibonacci[i] = fibonacci[i-1] + fibonacci[i - 2];
}
console.log(fibonacci.toLocaleString());
console.log(fibonacci.toString());
这里依稀记得,用C++写的时候,王跃学长不忘提醒我,int、long int和float的区别 ,斐波那契数列关于精度丢失的问题。
var arr1 = [];
var arr2 = new Array()
var arr3 = new Array(7)
var arr4 = [1, 2, 3];
var arr5 = new Array(1, 2, 3)
splice()、reverse()、fill()、copyWithin()、sort()、push()、pop()、unshift()、shift()