引言:ES6提供了一些对数组的操作,记此笔记
开始学习
1.json转数组 (Array.from)
let json = {
'0':'a',
'1':'b',
'2':'c',
'3':'d',
length:4
}
console.log(Array.from(json ))
2.数组循环(for of)
只取值
let arr = ['c++','c语言','java','python'];
for(let val of arr){
console.log(val);
}
只取下标
let arr = ['c++','c语言','java','python'];
for(let val of arr.keys()){
console.log(val);
}
取值与下标
let arr = ['c++','c语言','java','python'];
for(let [val,index] of arr.entries()){
console.log(val+':'+index);
}
3.数组查找(Array.find())
let arr = ['1,2,3,4,5,6,7,8,9','ymwwow'];
//value 表示要查找的值
//index 表示通过下标查找值
//arr 表示当前的数组
console.log(arr.find(function(value,index,arr){
return value =='ymwwow' //ymwwow
//return index == 1 //ymwwow
}));
4.Array.fill的用法
提供三个参数Array.fill(value,starts.end)
value:填充值。
start:填充起始位置,可以省略。
end:填充结束位置,可以省略,实际结束位置是end-1。
let arr = ['c++,','java','python','go'];
arr.fill('javascript',1,3);
console.log(arr);
5.entries( )的用法
基于entries()返回的遍历器,调用遍历器的next()的方法可以获取每一个元素的访问入口,该入口有一个done属性可以表明是否便利结束。通过入口可以拿到value属性,其就是元素的索引和值的数组。
let arr = ['c++,','java','python','go'];
let arrEntry = arr.entries();
let entry = arrEntry.next();
while(!entry.done){
console.log(entry.value);
entry = arrEntry.next()
}
复习一下以前的老知识
1.复制数组/截取数组
var a = [1,2,3,4,5,6]
var b = a.slice() //复制数组
//注意不能var b = a,这样只是将a的地址映射到b上面,也就是说修改b会影响到a
console.log(b)
var c = a.slice(1,4) //[2,3,4] 截取1-4(不包括4,包括1)之间的数
2.splice()方法
splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
//接收一个参数时,表示数组的前n位数,返回被删除的元素,修改了原数组
var a = [1,2,3,4,5,6,7,8,9]
a.splice(3) //返回[4,5,6,7,8,9]
console.log(a) //[1,2,3]
//接收2个参数时(n,m),表示从第n位开始删除 m位
var a = [1,2,3,4,5,6,7,8,9]
a.splice(3,1) //返回[4]
console.log(a) //[1,2,3,5,6,7,8,9]
//接收三个参数时(n,m,k),表示从第n位开始删除 m位,并用k替代删除的元素位置 ,返回被删除的元素
var c= [1,2,3,4,5,6,7]
c.splice(3,1,44) //返回[4]
console.log(c) // [[1,2,3,44,5,6,7]]
//在指定下标的位置插入一个值时可以这么写
c.splice(4,0,"new one") ///返回[],因为没有删除元素
console.log(c) // [1, 2, 3, 44, "new one", 5, 6, 7]