一堆的数组操作方法
四个必须记住的: push():最后一位追加 pop():删除最后一位 shift():删除第一位 unshift():在第一位追加
静态方法:Array.isArray(值)
数组的属性:
.length
数组的常用方法:
arr.concat(arr1);//把arr1拼接早arr后边,返回值是新数组--不会改变原数组
arr.indexOf(1);//判断某个值是否在数组中,如果有返回索引号,日过如果没有返回-1
arr.lastIndexOf(1)
arr.join(".");//用指定的拼接数组为字符串,返回值为拼接成的字符串--不会更改原数组
arr.sort()//从新排序-从小到大,只能正常排纯数字数组,其他类型的数据排序规则不确定[1,1,2]
arr.reverse()//数组反转
arr.slice(0,4)//start end 如果只给了开开始,代表截取从开始到全部
arr.splice(start,legth,值)//从开始位置 截掉多长的 第三个参数作为填充的值
//返回值是截掉的元素组成的新数组,追加的数据会改变原素组
数组的特殊方法:可以实现遍历数组
arr.some()
arr.find()
arr.findIndex()
arr.filter()
arr.every()
arr.forEach()//只实现循环
arr.every()//判断数组的元素是够否满足条件,找到一个不满足的就结束循环,返回false
arr.some()//和every()作用相反,找到一个真的就就结束吗,返回true 。否则返回false
//方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
arr.find(function(item){
return item>50
})
//方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。
var index = arr.findIndex(function(item.index){
return item>5
})
arr.filter()//挑出所有满足条件的元素,组成新数组
arr.forEach()//只实现循环
every() :依次遍历元素,判断每个元素是否都为true
function(value,index,self){} :每个元素都会使用此函数判断是否为true,当判断到一个为false时,立即结束遍历。
只有每个元素都为true才返回true;只要一个为false,就返回false。
示例:
var demoArray = [1, 2, 3];
var rs = demoArray.every(function (value, index, self) {
return value > 0;
});
console.log(rs); // => true
filter() :依次遍历元素,返回包含符合条件元素的新的数组
function(value,index,self){} :每个元素依次调用此函数,返回包含符合条件元素的新的数组。
返回值:
{Array} 一个包含符合条件元素的新的数组
示例:
var demoArray = [1, 2, 3];
var rs = demoArray.filter(function (value, index, self) {
return value > 0;
});
console.log(rs); // => [1, 2, 3]
forEach() :依次遍历元素,执行指定的函数;无返回值
function(value,index,self){} :每个元素依次调用此函数
返回值:无
示例:
var demoArray = [1, 2, 3];
demoArray.forEach(function (value, index, self) {
console.log(value); // => 依次输出:1 2 3
});
indexOf() :在数组中查找匹配元素。若不存在匹配的元素时,就返回-1。查找的时候使用”===”运算符,所以要区分1和’1’
返回值:返回数组中第一个匹配value的序号,若不存在,返回-1
示例:
[‘a’, ‘b’, ‘c’].indexOf(‘a’); // =>0
[‘a’, ‘b’, ‘c’].indexOf(‘a’, 1); // =>-1
[‘a’, ‘b’, ‘c’].indexOf(‘d’); // =>-1
[1, 2, 3].indexOf(‘1’); // => -1 :采用的’===’匹配方式
<script>
var arr = [12, 5, 8, 130, 44];
//第一个参数是每次循环拿到的数组的元素
//第二个参数是索引号
//第三个代表数组本身
// var b = arr.every(function(a,b,c){//
// console.log(a);
// console.log(b);
// console.log(c);
// console.log("------");
// return a>5;
// })
// console.log(b)
// var b = arr.filter(function(item,index,arr){
// return item>5
// })
// var b = arr.find(function(item,index,arr){
// return item>50
// })
var b = arr.some(function(item){
console.log(item);
return item>5;
})
console.log(b)
</script>
数组封装
<script>
var arr = [1,2,3]
var str="";
var add = function(a,arr){
for(var i= 0;i<arr.length;i++){
str =str+String(arr[i])+a
}
return str;
}
var a = add("*",arr)
console.log(a)
</script>
<script>
var arrk =[];
var arr = [1,1,2,3,"a",false];
// var str = arr.join("--")
// console.log(arr);
// console.log(str);
// var arr1 = arr.splice(1,2)
//
// console.log(arr1)
// console.log(arr)
var arrnew = arr.forEach(function(item,index,arr){
arrk.push(item);
})
console.log(arr);
console.log(arrk);
</script>