如何肯定当前是一个数组,JS提供了如下几种方式
1.typeof没法检测数组对象:typrof[]返回object
2.instanceof:[]instanceof Array返回true/false
3.Object.prototype.toString.call([])返回[object Array]
4.Array.prototype.isPrototypeOf([])返回true/false
5.ES5中的新方法,Array.isArray([])返回true/false数组
var arr = [1,2,3,4,5]; console .log(arr instanceof Array);//true console.log(Object.prototype.toString.call(arr));//[object Array] console .log(typeof null);//object console .log(null instanceof Object);//false console.log(Object.prototype.toString.call(null));//[object Null] console .log(Array .prototype.isPrototypeOf(arr));//true console.log(Array.isArray(arr));//true
JS提供了以下的方法用于数组的转换
1.toString() 把数组转换为字符串,并返回结果
2.valueOf() 返回数组对象的原始值函数
var arr =[1,2,3,4,5]; console .log(arr.toString());//1,2,3,4,5 console .log(arr.valueOf());//[1,2,3,4,5] var obj = { name :'jinx' } console .log(obj.valueOf());//{name:'jinx'}
JS中提供了以下方法,用于数组的进出栈操做
1.push()想数组的末尾添加一个或多个元素,并返回新的长度
2.pop() 删除数组中的而最后一个元素并返回删除的元素
3.shift()删除并返回数组的第一个元素
4.unshift() 向数组的开头添加一个或更多的元素,并返回新的长度prototype
var arr= [1,2,3,4,5]; arr .push(6); console .log(arr);//[ 1, 2, 3, 4, 5, 6 ] arr.pop(); console .log(arr);//[ 1, 2, 3, 4, 5 ] arr.unshift(7); console .log(arr);//[ 7, 1, 2, 3, 4, 5 ] arr.shift(); console .log(arr);//[ 1, 2, 3, 4, 5 ]
JS中提供了以下的方法,用于数组的排序操做
1.reverse() 反转数组的元素顺序
2.sort() 对数组的元素进行排序code
var values = [1,2,3,4,5,6]; console .log(valuse.sort());//1,2,3,4,5,6 console .log(values. reverse());//6,5,4,3,2,1 ###链接方法### 在JS中提供了如下方法,用于多个数组间的链接操做 concat() 链接两个或更多的数组,并返回结果
var arr = [1,2,3,4,5];
console .log(arr.concat(6));//[ 1, 2, 3, 4, 5, 6 ]
console .log(arr.concat([7,8,9]));//[ 1, 2, 3, 4, 5, 7, 8, 9 ]对象
###操做方法### slice() 选取数组的一部分,并返回一个新数组 splice() 从数组中添加或删除元素
var arr = [1,2,3,4,5];
/*排序
splice(start, deleteCount)方法 * 做用 - 用于删除当前数组中指定位置指定个数的元素 * 参数 * start - 表示删除的开始位置 * deleteCount - 表示删除的个数 * 返回值 - 将删除的元素组成的新数组进行返回
*/
// var result = arr.splice(0, 5);
// console.log(result);
// console.log(arr);字符串
/*it
splice(start, deleteCount, item1, item2, ...)方法 * 做用 - 向指定数组的指定位置添加元素 * 参数 * start - 表示删除的开始位置 * deleteCount - 表示删除的个数 * item1, item2, ... - 表示向数组添加的元素 * 返回值 - 将删除的元素组成的新数组进行返回
*/
// var result = arr.splice(0, 0, 6,7,8);
// console.log(result);
// console.log(arr);io
// var result = arr.splice(0, 3, 6,7,8);
// console.log(result);
// console.log(arr);console
/*
slice()方法 * 做用 - 截取指定数组中的元素 * 参数 * begin - 表示开始截取的位置(从 0 开始) * end - 表示结束截取的位置(截取最后一个位置的下一个位置) * 返回值 - 返回截取的元素组成的新数组
*/
var result = arr.slice(2,3);
console.log(result);
###检索方法### indexOf() 搜索数组中的元素,并返回他所在的位置 lastindexOf 返回一个指定的字符串值最后出现的位置,在一个字符串中指定位置从后向前搜索
var arr =['jinx','vn','mf','noc'];
console .log(arr.indexOf('jinx'));//0
console .log(arr.indexOf('mf'));//2
console .log(arr.indexOf('bec'));//-1
###forEach方法###
var arr = ['jinx','mf','noc','vn'];
arr. forEach(function(currentValue,index,array){
console .log(currentValue); console .log(index); console .log(array);
});
###迭代方法### 1.every():判断数组中每一个元素是否都知足fun函数定义的条件。只有知足才返回true,不然返回false。 2.filter():专门用于筛选出数组中符合fun函数判断条件的元素组成的心数组。 3.forEach():专门用于对原数组中每一个元素执行相同的fun函数对象规定的操做。 4.map():专门用于基于袁术组建立新数组对象。 5.some():判断数组中是否包含知足fun含糊是定义的条件的元素,只要包含就返回true,不然返回false。
var arr = [1,2,3,4,5];
var result = arr.every(function(currentValue,index,array){
return (currentValue<=5);
});
console .log(result);
##并归方法### 1.reduce()将数组从左向右迭代。 2.reduceRight()将数组从右向左迭代.
var arr = [1,2,3,4,5];
arr .reduce(function(accumulator,currentValue,cunrrentIndex,array){
console .log(accumulator) return accumulator + currentValue;
});