介绍
几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构。简单的就不介绍了,可以查看下面链接了解
https://www.runoob.com/js/js-obj-array.html
语法
js
push 数组末尾添加元素
pop 数组末尾删除元素
unshift 数组开头添加元素
shift 数组开头删除元素
concat 连接2个或更多数组,并返回结果
every 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
filter 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
forEach 对数组中的每一项运行给定函数。这个方法没有返回值
reduce 对数组中的每一项运行给定函数。
join 将所有的数组元素连接成一个字符串
indexOf 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1
lastIndexOf 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值
map 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
reverse 颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在的第一个
slice 传入索引值,将数组里对应索引范围内的元素作为新数组返回
splice 传入索引值,将数组里对于索引范围内的元素作为新数组返回
some 对数组中的每一项运行给定函数,如果任一项返回true,则返回true
sort 按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数
toString 将数组作为字符串返回
valueOf 和toString类似,将数组作为字符串返回
...
*slice与splice的区别,slice第一位非0时,截取到n-1位
js
let arr = ['a','b','c','d'];
console.log(arr.splice(0,3)) //[ 'a', 'b', 'c' ]
let arr2 = ['a','b','c','d'];
console.log(arr2.slice(0,3)) //[ 'a', 'b', 'c' ]
--------------------------------------------------------------
let arr = ['a','b','c','d'];
console.log(arr.splice(1,3)) //[ 'b', 'c', 'd' ]
let arr2 = ['a','b','c','d'];
console.log(arr2.slice(1,3)) //[ 'b', 'c' ]
寻找二维数组中最大值
思路:创建一个新数组用于存储每个数组中的最大值,数组初始值是[0],循环这个二维数组中的每个数组,与创建数组进行值的比较,取到最大值存放在当前数组索引对于位置。
js
let arr = [
[1,2,3,4],
[11,22,33,44,55],
[222,111,444],
[5,66,78,88]
]
let max = [];
for(let i=0;i<arr.length;i++){
max.push(0);
for(let j=0; j<arr[i].length; j++) {
console.log(arr[i][j], i);
if(arr[i][j] > max[i]) {
max[i] = arr[i][j]
}
}
}
//[ 4, 55, 444, 88 ]
数组查询算法
查询条件:一个数组有两个元素,第一个元素作为数据源,第二个元素为要查询的数组,是否每一项都可在第一项中查询出来。
js
let arr = [
'yangwenlong',
'yAgla'
]
let flag = true;
for(let i=0; i<arr[1].length; i++){
if(arr[0].toLocaleLowerCase().indexOf(arr[1][i].toLocaleLowerCase()) < 0) {
flag = false;
}
}
密码移位
思路:定义一个密码串,查询密码对应位置,与指定位置替换,生成新的密码
js
function rot13(str) { // LBH QVQ VG!
var cipher=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
var rot = "";
for(var i = 0; i < str.length; i++){
var index = -1 ;
index = cipher.indexOf(str[i]);
if( index >= 0 ){
rot += cipher[(index + 13) % 26];
}else{
rot += str[i];
}
}
return rot;
}
rot13("SERR PBQR PNZC"); //FREE CODE CAMP
rot13("FREE CODE CAMP"); //SERR PBQR PNZC
...