dandanyajin
今天更新博客了吗?

一,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,此式子也成立

 

posted on 2020-09-15 15:08  dandanyajin  阅读(1089)  评论(0编辑  收藏  举报