一,js数组
1,增
(1)join()
只增只在最后增可多个可增其他(数组,对象等),改变原数组(arr),新数组(arr1)为最新数组长度
arr
(11) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1]
var arr1 = arr.push(0,0)
arr1
13
arr
(13) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1, 0, 0]
arr1 = arr.push([6,6])
arr1
14
arr
(14) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1, 0, 0, Array(2)]
arr1 = arr.push({name:"danya"})
15
arr
(15) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1, 0, 0, Array(2), {…}]
(2)unshift()
与push()大致相同,只是新增数据位置在原数组的最前面。只增只在最前增可多个可增其他(数组,对象等),改变原数组(arr),新数组(arr2)为最新数组长度
(3)concat()
与push()大致相同,只是不改变原数组(arr)。只增只在最后增可多个可增其他(数组,对象等),不改变原数组(arr),新数组(arr3)为最新数组
arr
(12) [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1]
var arr3 = arr.concat(6,[7,8])
arr3
(15) [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1, 6, 7, 8]
arr
(12) [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1]
(4)splice(起始位置,0 (删除个数),新增或删的数值)
喜欢这个,可增可减可任意位置任意数量的增减可增其他(数组,对象等),改变原数组(arr),新数组(arr4)为删除元素的数组
arr
(12) [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1]
var arr4 = arr.splice(0,0,1)
arr4
[]
arr
(13) [1, 0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1]
arr4 = arr.splice(0,1)
[1]
arr4
[1]0: 1length: 1__proto__: Array(0)
arr
(12) [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1]
arr4 = arr.splice(1,2,[8,9])
(2) [1, 2]
arr
(11) [0, Array(2), 3, 4, 5, 5, 4, 3, 2, 1, 1]0: 01: (2) [8, 9]2: 33: 44: 55: 56: 47: 38: 29: 110: 1length: 11__proto__: Array(0)
arr4 = arr.splice(1,2,8,9)
(2) [Array(2), 3]
arr
(11) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1]
2,删
(1)pop()
参照 join() ,但是pop()括号中不需要数字,所以只是一个一个从原数组的最后位置删元素。改变原数组,新数组为删除的元素,如果数组为空则返回undefine
(2)shift()
参照 unshift() ,但是shift()括号中不需要数字,所以只是一个一个从原数组的最前位置删元素。改变原数组,新数组为删除的元素,如果数组为空则返回undefine
(3)slice(起始下标,结束下标(不写则截取从开始下标往后所有))
参照 concat() ,但是slice()是用来截取数组,不会改变原数组,新数组为截取下来的数组。(参数都不能为负,若结束下标为负会截取从开始下标往后所有)
(4)splice(起始位置,删除个数,新增或删的数值(可不写))
3,改
(1)splice(起始位置,删除个数,改成的数值)
太强大了!
arr
(16) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1, 0, 0, Array(2), {…}, 7]
var arr1 = arr.splice(2,3,1,1,1)
undefined
arr
(16) [0, 8, 1, 1, 1, 5, 4, 3, 2, 1, 1, 0, 0, Array(2), {…}, 7]
4,查
(1)indexOf( 需检索的值,开始检索的位置(可省) )
顺序找到,第一个想找的参数,返回下标;没有则返回-1
let arr = [1,1,1,1,1,1,1,1]
var arr1 = arr.indexOf(1,0)
arr1
0
(2)lastIndexOf( 需检索的值,开始检索的位置(可省) )
逆序找到,第一个想找的参数,返回下标;没有则返回-1
let arr = [1,1,1,1,1,1,1,1]
var arr1 = arr.lastIndexOf(1,3)
arr1
3
var arr1 = arr.lastIndexOf(1,0)
arr1
0
var arr1 = arr.lastIndexOf(1)
arr1
7
二,js对象
1,增
(1)直接赋值
let pers = {name:"danya",sex:"女",hobby:"苹果",1:"aa"}
pers.a = 123
pers
{1: "aa", name: "danya", sex: "女", hobby: "苹果", a: 123}
var data = "b"
pers[data]=456 //变量赋值
pers
{1: "aa", name: "danya", sex: "女", hobby: "苹果", a: 123, b: 456}
(2)批量赋值
pers
{1: "aa", name: "danya", sex: "女", hobby: "苹果", a: 123, b: 456}
Object.assign( pers , { c:789 , d:000 } )
{1: "aa", name: "danya", sex: "女", hobby: "苹果", a: 123, b: 456, …}1: "aa"a: 123c: 789d: 0hobby: "苹果"name: "danya"__proto__: Object
pers
2,删
(1)
据说它比“替换”慢很多很多,delete在循环中使用并且在性能方面可能存在问题,但是它删的很干净
pers
{1: "aa", name: "danya", sex: "女", hobby: "苹果", a: 123, b: 456, …}1: "aa"a: 123b: 456c: 789d: 0hobby: "苹果"name: "danya"sex: "女"__proto__: Object
delete pers.sex ( 等价于delete pers["sex"] )
pers
{1: "aa", name: "danya", hobby: "苹果", a: 123, b: 456, c: 789, …}1: "aa"a: 123b: 456c: 789d: 0hobby: "苹果"name: "danya"__proto__: Object
delete pers[data] //变量赋值
pers
{1: "aa", name: "danya", hobby: "苹果", a: 123, c: 789, d: 0}
3,改
(1)直接赋值
4,查
(1)
pers
{1: "aa", name: "danya", hobby: "苹果", a: 123, c: 789, d: 0}
"name" in pers
true
"sex" in pers
false
注意:pers.sex === undefined 不能断定'sex'是否为pers的属性,若pers中"sex":undefined,此式子也成立