1

Array类型

数组的常见方法

检测数组类型

var arr = [1,2,3,4,5];

console.log(arr instanceof Array);//true

//Object.prototype.toString.call()方法可以准确判断当前变量的类型
console.log(Object.prototype.toString.call(arr));//[object Array]

//Object.prototype.isPrototypeOf()方法判断指定类型是否在当前对象的原型链中
console.log(Array.prototype.isPrototypeOf(arr));//true

console.log(Array.isArray(arr));//true

转换方法

  • toString()-把数组转换成字符串,并返回结果
  • valueOf()-返回数组对象的原始值
var arr = [1,2,3,4,5,6,7];

//数组转换为字符串形式,多个数组元素用逗号隔开
console.log(arr.toString());//1,2,3,4,5,6,7

//将数组转化为原始类型
console.log(arr.valueOf());//[ 1, 2, 3, 4, 5, 6, 7 ]

var ojb ={
    name : '花'
} ;
console.log(ojb.valueOf());//{ name: '花' }

进出栈方法

var arr = [1,2,3,4,5];

//push()方法-在数组末尾添加一个或多个元素,并返回新的长度
console.log(arr);//[ 1, 2, 3, 4, 5, 6 ]
console.log(arr.push());//6

//pop()方法删除数组最后一个元素并返回删除的元素
console.log(arr.pop());//6
console.log(arr);//[ 1, 2, 3, 4, 5 ]

//unshift()-在数组开头添加一个或多个元素,并返回新的长度
console.log(arr.unshift(7));//6
console.log(arr);//[ 7, 1, 2, 3, 4, 5 ]

//shift()-删除并返回数组第一个元素
console.log(arr.shift());//7

###排序方法
  • reverse()-反转数组的元素顺序
  • sort()-对数组的元素进行排序

注意:返回值是排序之后的数组

var arr = [1,2,3,4,5];

//reverse()-反转数组元素的顺序
console.log(arr.reverse());//[ 5, 4, 3, 2, 1 ]

//sort()-改变元素的顺序,根据Unicode码排序
console.log(arr.sort());//[ 1, 2, 3, 4, 5 ]

连接方法

var arr = [1,2,3,4,5];
//concat()-连接多个数组
console.log(arr.concat(6));//[ 1, 2, 3, 4, 5, 6 ]

操作方法

  • slice()-选取数组的一部分,并返回一个新数组
  • splicle()-从数组中添加或删除元素
var arr = [1,2,3,4,5];

/*    slice()-截取一部分数据并作为新数据输出
*       参数
*          begin-开始截取的位置
*          end-截取最后的位置的下一个位置*/
/*
console.log(arr.slice(0,3));//[ 1, 2, 3 ]*/

/*    splice()-添加或删除元素
*       参数
*         start-表示删除的开始位置
*         deleteCount-表示删除的个数
*      返回值-删除的元素组成新的数组返回*/

console.log(arr.splice(0,4));//[ 1, 2, 3, 4 ]
console.log(arr);//[ 5 ]

检索方法

  • indexOf()-搜索数组中的元素,并返回它所在的位置
  • lastindexOf()-返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后往前搜索。
var arr = [1,2,3,4,5,6,7];

//indexOf()-从左向右检索指定元素,遇到第一个置顶元素返回它的位置
console.log(arr.indexOf(3));//2

//lastindexOf()-从右向左检索指定元素,遇到第一个置顶元素返回它的位置
console.log(arr.lastIndexOf(5));//4

//检索数组不存在的元素返回-1
console.log(arr.lastIndexOf(8));//-1

迭代与归并方法

迭代方法

  • every() -判断数组中每个元素是否都满足fun函数定义的条件,都满足返回true,否则返回flase
  • filter() -专门用于筛选出数组中符合fun函数判断条件的元素组成的新数组
  • forEach()- 专门用于对原数组中每个元素执行相同的fun函数对象规定的操作
  • map()- 专门用于基于原数组创建新数组对象
  • some()- 判断是否包含满足fun函数定义的条件的元素,只要包含就返回true,否则返回flase
var arr= [1,2,3,4,5];

/*   Array.prototype.forEach()
*     参数
*       callback - 表示回调函数
*         currentValue - 遍历数组得到每个元素
*         index - 表示遍历数组得到的每个元素的索引值
*         array - 表示遍历的数组*/

arr.forEach(function(currentValue,index,array){
    console.log(currentValue)
});

var arr = [1,2,3,4,5,6,7];

/* accumulator - 累加器的返回值

  • currentValue - 数组正在处理的元素(没有第一位元素)
  • currentIndex - 数组正在处理的元素的索引值
  • */

arr.reduce(function (accumulator,currentValue,currentIndex,array) {

console.log(accumulator);
return accumulator+currentValue

});


李威振
16 声望5 粉丝

别离时方知此世间,花亦花来人亦人