创建数组
1、new Array(‘1’,’2’)
2、const Array = [1,2,3]
let array = [1,2,3]
let hd = array
hd[0] = 'qihuanran'
console.log(hd) //['qihuanran',2,3]
console.log(array) //['qihuanran',2,3]
hd和array共用的是一个内存空间,只是地址发生了变化,这是引用类型的特点。
多维数组
let lesson = [['hello'],['1','2']]
console.log(lesson[1][1]) // 1
let lesson = [{name: 'php',age: '123'},{name: 'qihuanran', age: '23'}]
console.log(lesson[0].name) // php
展开语法
let arr = ['qihuanr', 'houdunren']
let array = ['1', '2']
let arrlist = [...arr,...array]
console.log(arrlist) // ['qihuanr', 'houdunren','1', '2']
function array(...ages) {
console.log(ages)
}
array(1,2,3,4)
数组的基本操作
**
slice(起始位置,结束位置) //赋值取
splice(起始位置,移除个数,替换参数) //剪切数组。修改原数组
indexof() //从左查找
lastindexof() //从右查找
includes(查找值) //查找数组
includes实现
let arr = [1,2,3,4,5,6]
function includes (array, find){
for (let value of array) {
if (value === find) return true
}
return false
}
console.log(includes(arr, 4))
// 返回4
find() //查找 直接找到的返回值。并且可以对引用类型的数据进行查找
findIndex() // 返回的是找到的索引
find实现
//find实现
function find(array, callback) {
for (let value of array) {
if (callback(value)) return value
}
return undefined
}
let arr = [1,2,3,4,5,6]
console.log(arr, function(item) {
return item == 2
})
// 返回2
sort((a,b) => {return a-b}) // 排序 负数从小到大
every() //一但有不满足条件的 就返回false
some() // 一但有一个值为真。所有的都通过
filter() // 数组过滤
const arrays = lessons.filter(item => {
return item.state == 1
})
console.log(arrays)
// 返回的是数组中state为1的数据
手动实现filter
let hd = [1,2,3,4,5,6]
function filter(array, callback){
let newArray = []
for(let value of array) {
if (callback(value) === true) {
newArray.push(valye)
}
}
return newArray
}
console.log(filter(hd,function(item) {
return item > 2
}))
// 输出3,4,5,6
reduce(上一次返回的值,数组,下标,原数组) //
reduce去重
let arr = [1,2,3,1,2,1,1,1]
let newArr = arr.reduce(function(arr, cur) {
if (arr.includes(cur) === false) {
arr.push(cur)
}
return arr
}, [])