判断这个对象是不是数组:
Array.isArray(对象)
instenceof关键字
当检测Array实例时, Array.isArray
优于 instanceof,因为Array.isArray能检测iframes
方法:
.concat(数组,数组,数组……)组成一个新的数组
.every(函数)——>返回值是布尔类型,函数作为参数使用,函数中有三个参数,第一个参数是元素的值,第二个参数是索引值,第三个参数是原来的数组(没用)
如果这个数组中的每个元素的值都符合条件,最后才返回的是true
var arr2=[1000,2000,3000];
// a—->元素的值
// b—->索引的值
// c—->谁调用这个方法,那么c就是谁—->arr2
var flag=arr2.every(function(a,b,c){
console.log(a+”===”+b+”===”+c);
return a>2000;
});//1000===0===1000,2000,3000
.filter(函数)返回的是数组中每一个元素都符合条件的元素,组成一个新的数组
var flag1=arr2.filter(function(element){
return element>1000;
});
console.log(flag1);//Array [ 2000, 3000 ]
.push(值)—->把值追加到数组中的末尾——>返回值也是追加数据之后的数组长度
.pop()——>删除数组中的最后一个元素,返回值就是删除的这个值
.shift()——>删除数组中的第一个元素,返回值就是删除的这个值
.unshift()——>向数组的第一个元素前面插入一个新的元素,返回值是插入后的长度
.forEach(函数)方法——>遍历数组用——>相当于for循环 console.log(arr2.forEach(function(element,index,arr){
console.log(“arr2[“+index+”]”+”=”+element);
}));
/arr2[0]=5000 array
arr2[1]=2000 array
arr2[2]=3000 array
undefined/
.indexOf()返回的是索引,没有则是-1
.join(“字符串”)返回的是一个字符串
.map(函数)——>数组中的每个元素都要执行这个函数,把执行后的结果重新全部放在一个新的数组 console.log(arr2.map(function(element){
return element*2;
}));//Array(3) [ 10000, 4000, 6000 ]
.reverse()——>反转数组
.sort()——>排序,可能不稳定,如果不稳定,写下MDN中的那个固定代码
var arr3=[2,5,1,15,33,9,105];
console.log(arr3.sort(function compare(a, b) {
if (a < b ) { // 按某种排序标准进行比较, a 小于 b
return -1;
}
if (a > b ) {
return 1;
}
// a must be equal to b
return 0;
}));//Array(7) [ 1, 2, 5, 9, 15, 33, 105 ]
.arr.slice(开始的索引,结束的索引)——>把截取的数组的放在一个新的数组中,但不包含结束索引对应的元素值
.splice(开始的位置,要删除的个数,替换的元素的值)——>一般是用于删除数组中的元素,或是替换元素,或是插入元素