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