day56
一.数组对象Array
数组对象的作用:使用单独的变量名来存储一系列的值,类似于python中的列表
var x = ["egon","hello"];
console.log(x[1]); // 输出"hello"
常用方法:
sort()的使用需要注意:
如果调用此方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说的更精确点,是按照字符编码的顺序进行排序
代码演示:
var arr = [123,9,1211,11]
arr.sort()
// 输出[11,1211,123,9]
如果想按照其他标准进行排序,就需要提供比较函数,该函数应该具有两个参数 a 和 b,接收传入的a和b,执行函数体代码,然后返回一个值用于说明a和b的大小
返回值 < 0 :代表a小于b
返回值 =0 : 代表a等于b
返回值 > 0 :代表a大于b
注意:
var x = '5';
var y = '3';
res = x - y; // res=2
typeof res // "number"
示例:
function sortNumber(a,b) {
return a - b
}
var arr = [123,9,1211,11]
arr.sort(sortNumber) #[9,11,123,1211]
关于遍历数组中的元素,可以使用下面的方式:
var arr = [11,22,33,44];
for (var i=0;i<arr.length;i++) {
console.log(arr[i]);
}
forEach()
语法:
forEach(function(currentValue,index,arr),thisValue)
参数:
var arr=['aa','bb','cc','dd','ee']
arr.forEach (function(v,i,arr) {
console.log(v,i,arr);
console.log(this[0]);
},"hello")
splice()
语法:
splice(index,howmany,item1,...,itemx)
参数:
forEach vs map:
1、forEach()返回值是undefined,不可以链式调用。
var res=arr.forEach(function(v,i,arr){
console.log(v,i,arr);
console.log(this[0]);
return 123;
},"hello")
res # undefined
2、map()返回一个新数组,原数组不会改变
var res=arr.map(function(v,i,arr){
v=v + 'SB'
return v;
},"hello")
res #["aaSB", "bbSB", "ccSB", "ddSB", "eeSB"]
在使用forEach()时候,如果数组在迭代的视乎被修改,则其他元素会被跳过
var arr=[11,22,33,44,55]
arr.forEach(function