数组
数组属于内置对象。
普通对象是使用字符串作为属性名,而数组是使用数字作为索引来操作元素。
索引:下标,用来访问数组元素的序号,代表的是数组中的元素在数组的位置,一般从0开始,在我的理解中从0开始的整数就是索引。
数组中的元素可以是任意类型的数据,例如字符、数组、对象、布尔值、函数。
PS:在不断的尝试中我发现,如果读取不存在的索引,系统不会报错,而是返回undef。
获取数组的长度
一般我们用length属性来获取数组的长度(就是数组中元素的个数)
举例:
// 获取数组的长度
var arr = [1,2,3,4]
console.log(arr.length);
PS:对于连续的数组,我们可以使用length来获取到数组的长度,但是在非连续的数组中(稀疏数组),length的值会大于元素的个数。
修改数组的长度
遍历数组:把数组从头到尾都访问一遍。
举例:
// 遍历数组
let arr = [1,2,3,4,5]
for (let index = 0; index < arr.length; index++) {
console.log(arr);
}
数组的常见方法:
push()向数组的最后插入一个或者多个元素,返回结果为新数组的长度
pop()删除数组中的最后一个元素,
返回结果为被删除的元素
shift()删除数组中的第一个元素,返回结果是被删除的元素
unshift()在数组最前面插入一个或者多个元素返回结果是新元素的长度
举例:
let arr = [1,2,3,4,5];
let arr1 = arr.push(6);
let arr2 = arr.pop();
let arr3 = arr.shift();
let arr4 = arr.unshift();
console.log(arr1);
console.log(arr2);
console.log(arr3);
console.log(arr4);
forEach()方法需要一个函数作为参数,这种函数是由我们创建但是不由我们调用的,我们称之为回调函数。数组中有几个函数,该回调函数就会执行几次。
回调函数中传递三个参数:
第一个参数,就是当前正在遍历的元素。
第二个参数,就是当前正在遍历的元素的索引。
第三给参数,就是正在遍历的数组。
举例:给定一个数组,让他们中的元素都乘以5
let arr = [1,2,3,4,5];
arr.forEach((item,index) =>{
item = item*5
arr[index]=item*5
})
console.log(arr);
map()方法
举例1:上面让数组每个元素乘以5也可以用map()方法实现:
let arr =[1,2,3,4,5]
let newItem = arr.map(function (item,index) {
return item *5 ;
});
console.log(newItem);
举例2:将数组中某个属性的值,储存的B数组中。
// 将A数组的某个属性的值存储到b数组当中:
let arr1 = [
{ name:'涛哥',age: '20'},
{ name:'强哥',age:'100'},
];
// 将数组arr1中的name属性存储到数组arr2中
let arr2 = arr1.map((item) =>item.name);
// 先将数组arr1中的name、age这两个属性该一下健名存储到arr3中
let arr3 = arr1.map ((item) => ({
myNalme: item.name,
myAge: item.age,
}));
// 将数组crr1中的nalme属性转储到数组arr2中
console.log(arr1);
console.log(arr2);
console.log(arr3);
箭头函数
定义箭头函数的语法
(参数1,参数2....)=>{函数体}
如果有且仅有1个形参,则()可以省去。
如果函数体内有却仅有1条语句。则{}可以省去,但前提是,这条语句必须是return语句。需要强调的是,箭头函数是没有函数名的,我们可以将箭头函数赋值给一个变量,通过变量名调用函数,也可以直接使用箭头函数