数组方法
- fill:将一个固定的值替换到数组中的元素
- arr.fill(a,b,c)
- a:必填,表示填充的值,
- b:选填,表示开始的位置,
- c:选填,停止的位置,默认为数组最后一位
- slice:需要重新定义一个新的数组去接收
- slice(a,b)
- a:从何处开始选取。如果是-1 表示最后一个元素,-2 表示倒数第二个元素
- b:从何处结束选取。数组的下标。如果这个参数是负数,则表示是从数组尾部算起的元素。
- 如果参数为空,则表示是选取数组的全部元素。
let a = [1, 2, 3, 4, 5, 6]
let hd = a.slice(1, 2)
a.slice(1, 2)
console.table(hd) =>[2]
console.table(a) =>[1,2,3,4,5,6]
- splice:返回一个新的数组,即是截取的数组。原数组改变,变为截取后的数组
- splice(a,b) -> 删除功能
- a:表示开始的位置
- b:表示截取多少个
let a = [1, 2, 3, 4, 5, 6]
let hd = a.splice(1, 2)
console.table(hd) => [1,2]
console.table(a) =>[3,4,5,6]
- splice(a,b,'c','c','...') -> 替换新增
let a = [1, 2, 3]
a.splice(0, 0, 'aa', 'bb')
console.table(a) ==>['aa','bb',1,2,3]
let a = [1, 2, 3]
a.splice(0, 1, 'aa', 'bb')
console.table(a) ==>['aa','bb',2,3]
let a = [1, 2, 3, 4, 5, 6]
a.splice(0, 2, 'aa', 'bb')
console.table(a) ==>['aa','bb',3,4,5,6]
let a = [1, 2, 3, 4, 5, 6]
a.splice(1, 0, 'aa', 'bb')
console.table(a) ==>[1,'aa','bb',2,3,4,5,6]
let a = [1, 2, 3]
a.splice(a.length, 0, 'aa', 'bb')
console.table(a) ==>[1,2,3,'aa','bb']
- split, join (拆分和合并数组)
let a = 'a,b,c,d'
let b = a.split(',')
let c = b.join("*")
console.log(b) ===>["a","b","c","d"]
console.log(v) ===> a*b*c*d
- concat 返回一个新数组
let a = [1,2,3]
let b = [4,5,6]
a = a.concat(b)
console.log(b) ==>[1,2,3,4,5,6]
- 更简单的方法
// 这就看起来很舒服
a = [...a, ...b]
console.log(a) ===>[1,2,3,4,5,6]
- copyWithin 复制
- copyWithin(a,b,c)
- 必需。复制到指定目标索引位置。
- 可选。元素复制的起始位置。
- 可选。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。
let a = [1, 2, 3]
a.copyWithin(1, 0, 3)
console.log(a) ==>[1,1,2]
- 数组的查找
- 根据实际情况使用
- indexoOf(a,b) 找到返回下标,找不到返回 -1
- a:查找的目标元素
- b:查找开始的位置
- includes 找到返回true,找不到返回false
- find
let a = [1, 2, 3, 4, 5, 3]
let arr = a.find(item => {
return item === 3
})
console.log(arr) ===>2
let arr = a.find(item => {
return item === 300
})
console.log(arr) ===>undefined
- 数组排序
let arr = [1, 3, 2]
arr = arr.sort((a, b) => {
// -1 从小到大 1 正数 从大到小
return a - b
})
console.log(arr) ===>[1,2,3]
原型(对象属性)
JavaScript 规定,每一个函数都有一盒prototype 对象属性,指向另一个对象(原型链上面的)。prototype(对象属性)的所欲属性和方法,都会被构造函数的实力继承,这意味着,我们可以把那些不变(公用)的属性和方法,直接定义在prototype对象属性上。 prototype 就是调用构造函数所创建的那个实例对象的原型(——proto——)。 prototype 可以让所有对象实例共享它所有包含的属性和方法。也就是说,不必在构造函数重定义对象信息,而是可以直接将这些信息添加到原型中。
let hd ={}
console.log(Object.getPrototypeOf(hd)) // 获取这个对象的原型了
let ly = Object.create(null,{
name:{
value:'信赖杨'
}
})
console.log(ly)
Object.create 顾名思义 就是创建一个对象,null 就相当于他的父亲。null的时候,就是没有父亲,也就是没有对应的原型。属性只有定义的name属性