数组方法
Array.of(x)
将文字或者变量转换成数组。
let arr_arr = Array.of(3, 4, 5, 6)let arr1 = Array.of(arr_str) [3,4,5,6]let arr_str1 = '[3,4,5,6]';
let arr2 = Array.of(arr_str) ['3,4,5,6']Array.from(x)
JSON数组格式比通常的数组格式多了一个length
Array.from(x)将JSON代码转换成数组
let json = { '0': 'kai', '1': 'xin', length: 2}console.log(json)页面打印 {0: "kai", 1: "xin", length: 2}let arr9 = Array.from(json)console.log(arr9) 页面打印 ["kai", "xin"]find( )
首先创建数组,然后数组调用,此时的find方法称为 find实例方法。
- value:表示当前查找的值。
- index:表示当前查找的数组索引。
- arr:表示当前数组
在函数中如果找到符合条件的数组元素就进行return,并停止查找。
es5
var shuzu = [3, 5, 6, 7, 8, 9, 0, 9]console.log(shuzu.find(function (val, index, arr) { return val > 6}))es6
var shuzu = [3, 5, 6, 7, 8, 9, 0, 9]
console.log(shuzu.find((val, index, arr) => val > 6))fill( )
数组进行填充,它接收三个参数,第一个参数是填充的变量,第二个是开始填充的位置,第三个是填充到的位置。
var fill_arr = [1,3,4,5,6,7]fill_arr.fill('kaixin',2,4)
// 从第二个开始填充到第四个但是不包含第四个console.log(fill_arr) [1, 3, "kaixin", "kaixin", 6, 7]for…of循环
同时输出数组的内容和索引,我们用entries()这个实例方法,配合我们的for…of循环就可以同时输出内容和索引了
let arr=['aa','bb','cc']
for (let [index,val] of arr.entries()){
console.log(index+':'+val);
}let arr=['aa','bb','cc']
for (let item of arr.entries()){
console.log(item);
}当数组为空时,循环不执行
entries( )
entries()实例方式生成的是Iterator形式的数组,那这种形式的好处就是可以让我们在需要时用next()手动跳转到下一个值。
var fill_arr = [1, 3, 4,]let arr3 = fill_arr.entries()console.log(arr3)console.log(arr3.next().value);console.log('********')console.log(arr3.next().value);console.log('、、、、、、、、、')console.log(arr3.next().value);console.log('========')
对象的函数解构
将json数据作为参数传入函数中,然后在函数内部进行一些处理。
形参与实参的参数名字要一一对照,否则不显示
let data_json = { aa: '数据aa', b: '数据bb', c: '数据cc',}function fun_data({ a, b, d }) { console.log(a, b, d)}fun_data(data_json)undefined "数据bb" undefinedlet data_json = { a: '数据aa', b: '数据bb', c: '数据cc',}function fun_data({ a, b, d }) { console.log(a, b, d)}fun_data(data_json)"数据aa" "数据bb" undefined数组结构
let arr = [1,2,3,4]function fun(a,b,c,d){ console.log(a,b,c,d)}fun(...arr)in 判断元素是否存在
对象
let data_json = { aa: '数据aa', b: '数据bb', c: '数据cc',}console.log('aa' in data_json) // true数组
使用length判断数组 不准确
var arr1 = [,,,,,]console.log(arr1.length)in 判断
var arr2 = [,,,,,]console.log(0 in arr2) falsevar arr3 = ['shuzu',,,,,]console.log(0 in arr2) true0 是数组下标
数组遍历
foreach ( 值,下标,数组 )
let arr4 = ['a','b','f','g','h']arr4.forEach((val,idx,arr) => console.log(val,idx,arr))filter ( 值,下标,数组 )
let arr5 = ['a','b','f','g','h']arr5.filter((val,idx,arr) => console.log(val,idx,arr))some ( 值,下标,数组 )
let arr6 = ['a','b','f','g','h']arr6.some((val,idx,arr) => console.log(val,idx,arr))
map( 值,下标,数组 )
let arr7 = ['a','b','f','g','h']arr7.map((val,idx,arr) => console.log(val,idx,arr))map的替换
将数组中的所有元素替换 只在本函数中有作用,不改变原数组
let arr7 = ['a','b','f','g','h']console.log(arr7.map(x=>'rain')) //["rain", "rain", "rain", "rain", "rain"]console.log(arr7) // ['a','b','f','g','h']数组变为字符串
toString( )
let arr7 = ['a','b','f','g','h']console.log(arr7.toString()) // a,b,f,g,hjoin( )
console.log(arr7.join('|')) // a|b|f|g|h