1.call和apply用法
let a ={
value:1
}
function getValue(name,age){
console.log(name)
console.log(age)
console.log(this.value)
}
getValue.call(a,'tingyu','26')
getValue.apply(a,['tingyu','26'])
call和apply会改变this的指向,上面的例子中将this指向了对象a,区别是,call的后面参数为多个参数,apply为数组
2.map数组遍历操作
[1,2,3].map((v) => v+1)
map可以对数组进行遍历和修改,比for循环遍历要方便一些
3.数组去重多种方法
①//indexOf去重法
function find() {
var newArray = [];
for(var i=0;i<arr.length;i++){
if(newArray.indexOf(arr[i])==-1){
newArray.push(arr[i])
}
}
console.log(newArray)
}
数组的 indexOf方法用来确定某个值在数组里的索引,如果不存在,则返回-1
②//es6 数据结构Set去重法
var arr1=[...new Set(arr)];
利用Set中值的唯一性来做数组去重
4.数组排序n种算法
①//冒泡排序
function bubbleSort(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1;j++){
if(arr[j+1]<arr[j]){
var temp;
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr
}
原理是将当前项和后面一项作比较,如果不符合想要的顺序,就将这两项的顺序调换
②// sort排序
var arr2=[3,1,4,6,5,7,2];
arr2.sort(function(a,b){
return a-b
})
如果是从小到大是a-b,如果是从大到小是b-a