js數組和js對象的增刪改查


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM