// 索引:
var arr = ["hello",true,"world",2,5,"abc"];
console.log(arr) //["hello", true, "world", 2, 5, "abc"]
console.log(arr.length) // 6
// 增:
console.log(arr[0]) //hello
console.log(arr[arr.length-1]) //abc
console.log(arr[arr.length]) //undefined
arr[arr.length] = "hahahah";
console.log(arr[10]) //undefined
arr[10] = "heiheihie"
console.log(arr) //["hello",true,"world",2,5,"abc","hahahah",empty × 3,"heiheihie"]
console.log(arr[7]) //undefined
console.log(arr[8]) //undefined
console.log(arr[9]) //undefined
// 删:
console.log(arr.length) //11
arr.length = 4;
console.log(arr) //["hello", true, "world", 2]
// 改:
arr[1] = "qwe"
arr[3] = 123
console.log(arr) // ["hello", "qwe", "world", 123]
// // 查:
for(var i=0;i<arr.length;i++){
console.log(arr[i]) //hello
//qwe
//world
//123
}
var arr = ["hello",true,123,"world"]
arr.push(456,"你好");
console.log(arr);
打印到控制台显示
var arr = ["hello",true,123,"world"]
arr.push(456,"你好");
arr.unshift(789);
console.log(arr);
打印到控制台显示
var arr = ["hello",true,123,"world"]
arr.pop();
console.log(arr)
打印到控制台显示
var arr = ["hello",true,123,"world"]
arr.pop();
arr.shift();
console.log(arr);
打印到控制台显示
var arr = ["hello",true,123,"world"]
arr.splice(1,2) arr.splice(1,2,"admin")
arr.splice(2,0,"admin")
arr.splice(2,0,"admin","a","b",345)
console.log(arr)
打印到控制台显示
var arr = ["hello",true,123,"world"]
var a = arr.slice(1,3)
console.log(a)
var a = arr.slice(1)
console.log(a)
打印到控制台显示
var a=arr.reverse();
console.log(a)
打印到控制台显示
var a=arr.sort();
console.log(a)
打印到控制台显示
var arr = ["hello",true,123,"world"]
var a=arr.sort();
var a=arr.valueOf();
console.log(a)
打印到控制台显示
var arr = ["hello",true,123,"world"]
var a=arr.toString();
console.log(a)
打印到控制台显示
var arr = ["hello",true,123,"world"]
var a=arr.join("-");
console.log(a)
打印到控制台显示
var arr = ["hello",true,123,"world"]
var a=arr.concat("你好","未来");
console.log(a)
打印到控制台显示
var arr = ["hello",true,123,"world"]
var a=arr.indexOf(123);
console.log(a)
打印到控制台显示
var arr = ["hello",true,123,"world"]
var a = arr.forEach(function(value,index,self){
console.log(value + "--" + index + "--" + (arr === self));
})
console.log(a)
打印到控制台显示,console.log(a) 值为undefined是因为该方法没有返回值
var arr = ["hello",true,123,"world"]
var a = arr.map(function(value,index,self){
console.log(value + "--" + index + "--" + (arr === self));
})
var a = arr.map(function(value,index,self){
return "Hi"+value;
})
console.log(a)
console.log(arr)
打印到控制台显示
var arr = ["hello",true,123,"world"]
var a = arr.filter(function(value,index,self){
console.log(value + "--" + index + "--" + (arr === self));
})
var a = arr.filter(function(value,index,self){
return value.length>3;
})
console.log(a)
console.log(arr)
打印到控制台显示
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.every(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
})
// 打印结果为:
// Tom--0--true
//因为回调函数中没有return true,默认返回undefined,等同于返回false
//demo2:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.every(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
return value.length < 4;
})
// 打印结果为:
// Tom--0--true
// abc--1--true
// Jack--2--true
//因为当遍历到Jack时,回调函数到return返回false,此时Jack已经遍历,但是后面数据就不再被遍历了
//demo3:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.every(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
return true;
})
// 打印结果为:
// Tom--0--true
// abc--1--true
// Jack--2--true
// Lucy--3--true
// Lily--4--true
// May--5--true
//因为每个回调函数的返回值都是true,那么会遍历数组所有数据,等同于forEach功能
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.every(function(value,index,self){
return value.length > 3;
})
console.log(a); //false
//demo2:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.every(function(value,index,self){
return value.length > 2;
})
console.log(a); //true
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
return value.length > 3;
})
// 打印结果为:
// Tom--0--true
// abc--1--true
// Jack--2--true
//demo2:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
return true;
})
// 打印结果为:
// Tom--0--true
//demo3:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
return false;
})
// 打印结果为:
// Tom--0--true
// abc--1--true
// Jack--2--true
// Lucy--3--true
// Lily--4--true
// May--5--true
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
return value.length > 3;
})
console.log(a); //true
//demo2:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
return value.length > 4;
})
console.log(a); //false
//demo1:不省略initial参数,回调函数没有返回值
var arr = [10,20,30,40,50];
arr.reduce(function(prev,now,index,self){
console.log(prev + "--" + now + "--" + index + "--" + (arr == self))
}, 2019)
// 打印结果为:
// 2019--10--0--true
// undefined--20--1--true
// undefined--30--2--true
// undefined--40--3--true
// undefined--50--4--true
// 此时回调函数没有return,所以从第二次开始,prev拿到的是undefined
//demo2:省略initial参数,回调函数没有返回值
var arr = [10,20,30,40,50];
arr.reduce(function(prev,now,index,self){
console.log(prev + "--" + now + "--" + index + "--" + (arr == self))
})
// 打印结果为:第一次,回调函数的第一个参数是数组的第一项。第二个参数就是数组的第二项
// 10--20--1--true
// undefined--30--2--true
// undefined--40--3--true
// undefined--50--4--true
// 此时回调函数没有return,所以从第二次开始,prev拿到的是undefined
//demo3:不省略initial参数,回调函数有返回值
var arr = [10,20,30,40,50];
arr.reduce(function(prev,now,index,self){
console.log(prev + "--" + now + "--" + index + "--" + (arr == self));
return "hello";
}, 2019)
// 打印结果为:
// 2019--10--0--true
// hello--20--1--true
// hello--30--2--true
// hello--40--3--true
// hello--50--4--true
// 此时回调函数有return,所以从第二次开始,prev拿到的是回调函数return的值
//demo4:省略initial参数,回调函数有返回值
var arr = [10,20,30,40,50];
arr.reduce(function(prev,now,index,self){
console.log(prev + "--" + now + "--" + index + "--" + (arr == self));
return "hello";
})
// 打印结果为:第一次,回调函数的第一个参数是数组的第一项。第二个参数就是数组的第二项
// 10--20--1--true
// hello--30--2--true
// hello--40--3--true
// hello--50--4--true
// 此时回调函数有return,所以从第二次开始,prev拿到的是回调函数return的值
//demo5:使用reduce计算数组中所有数据的和
var arr = [10,20,30,40,50];
var sum = arr.reduce(function(prev,now,index,self){
return prev + now;
})
console.log(sum); //150
// 回调函数的最后一次return的结果被返回到reduce方法的身上
//demo6:使用reduce计算数组中所有数据的和
var arr = [10,20,30,40,50];
var sum = arr.reduce(function(prev,now,index,self){
return prev + now;
}, 8)
console.log(sum); //158
// 回调函数的最后一次return的结果被返回到reduce方法的身上
// 因为reduce有第二个参数initial,在第一次执行时被计算,所以最终结果被加上8
原文:https://www.cnblogs.com/mhcll/p/11417936.html