數(shù)據(jù)操作

數(shù)據(jù)操作

一、對象

一個大空間存儲多個小的內(nèi)存空間,一個變量中存儲多個數(shù)據(jù)的數(shù)據(jù)

定義:

var 對象 = { 屬性: 值, 屬性: 值, ... }
var 對象 = new Object()

基本操作:

設(shè)置對象的鍵值對:

對象.屬性名 = 值
對象['屬性名'] = 值

如果屬性名原本不存在 - 新增

如果屬性名原本存在 - 修改/替換

訪問對象的值:

對象.屬性名
對象['屬性名']

刪除對象鍵值對:

delete 對象.屬性名
delete 對象['屬性名']

對象的特性:

  1. 對象中的鍵值對之間是無序的
  2. 對象中的屬性是唯一的

對象的遍歷:

for(var key in 對象){
    key代表對象中的每個屬性
    對象[key]
}

注意:如果使用變量代表對象的鍵,獲取值的時候必須使用對象[鍵]語法

二、數(shù)組

概念:一個大空間存儲多個小的內(nèi)存空間,一個變量中存儲多個數(shù)據(jù)的數(shù)據(jù)

跟對象的區(qū)別:數(shù)組中的小空間是有順序的

定義:

var arr = []
var arr = new Array()

注意:只放入一個數(shù)字的時候,[]表示數(shù)組中有一個元素,new表示有多個空的小空間。

基本操作:

設(shè)置數(shù)組中的數(shù)據(jù):

數(shù)組[下標(biāo)] = 值

訪問:

數(shù)組[下標(biāo)]

刪除數(shù)據(jù)(保留小空間):

delete 數(shù)組[下標(biāo)]

長度:

數(shù)組.length // 獲取數(shù)組中元素個數(shù)
數(shù)組.length = 數(shù)字 // 將數(shù)組保留多少個小空間

數(shù)組的規(guī)律:

  1. 數(shù)組的第一個元素下標(biāo)一定是0
  2. 數(shù)組的最后一個元素下標(biāo)一定是length-1

遍歷:

for(var a = 0; a < arr.length; a++) {
    a代表每個元素對應(yīng)的下標(biāo)
}

for(var a in arr){
    a代表每個元素對應(yīng)的下標(biāo)
}

區(qū)別:in語法不遍歷空的小空間

三、基本類型和引用類型

基本類型:number/string/boolean/undefined/null

引用類型:object/array/function

區(qū)別:

基本類型 引用類型
存儲 將值存儲在棧中 將值存儲在堆中,將堆的地址存儲在棧中
賦值 將值復(fù)制給另一個變量 將地址復(fù)制給另一個變量 - 兩個變量共享同一個數(shù)據(jù)了
比較 比較值和類型 比較的內(nèi)存地址

注意賦值操作,因為我們有很多隱性賦值過程:

  1. 實參賦值給形參
  2. 用變量接收函數(shù)的返回值

四、排序方式

1、冒泡排序

將數(shù)組中每相鄰的兩個元素進(jìn)行大小比較,排列順序

for(var i = 0; i < arr.length - 1; i++){
    for(var j = 0; j < arr.length - 1; j++){
        if(arr[j] > arr[j+1]){
            var tmp = arr[j]
            arr[j] = arr[j+1]
            arr[j+1] = tmp
        }
    }
}

2、選擇排序

每一輪都找到最大或最小值,排在最前面,在剩下的數(shù)字中找到最大或最小值排在第二位,。。。

for(var i = 0; i < arr.length - 1; i++) {
    for(var j = i + 1; j < arr.length; j++) {
        if(arr[j] > arr[i]){
            var tmp = arr[j]
            arr[j] = arr[i]
            arr[i] = tmp
        }
    }
}

五、數(shù)組方法

刪除開頭:shift

刪除結(jié)尾:pop

開頭添加:unshift

結(jié)尾添加:push

給數(shù)組添加、修改、刪除:splice

查找元素在數(shù)組中第一次出現(xiàn)的下標(biāo):indexOf

查找元素在數(shù)組中最后一次出現(xiàn)的下標(biāo):lastIndexOf

將數(shù)組元素使用連接符連接成一個字符串:join

遍歷數(shù)組:forEach

過濾:filter

判斷數(shù)組中是否至少有一個元素是滿足條件的:some

求和:reduce

所有元素處理成新元素組成新數(shù)組:map

翻轉(zhuǎn):reverse

找數(shù)組中第一個滿足條件的元素的下標(biāo):findIndex

找數(shù)組中第一個滿足條件的元素:find

截取:slice

排序:sort

合并:concat

判斷數(shù)組中是否所有元素都滿足指定條件:every

六、字符串

字符串可以取下標(biāo) - 字符串[下標(biāo)]

字符串是只讀數(shù)據(jù),只能讀取字符,不可以修改、刪除字符

字符串可以比較大小,規(guī)則:逐字符比較

字符的大小由阿斯克碼決定

09:4857

az:97122

AZ:6590

七、字符串方法

查找字符或小字符串第一次出現(xiàn)的下標(biāo):indexOf

查找字符或小字符串最后一次出現(xiàn)的下標(biāo):lastIndexOf

分割成數(shù)組:split

獲取指定下標(biāo)對應(yīng)字符的阿斯克碼:charCodeAt

替換字符串:replace

去除空白:trim/trimLeft/trimRight

轉(zhuǎn)大寫:toUpperCase

轉(zhuǎn)小寫:toLowerCase

根據(jù)阿斯克碼獲取字符:String.fromCharCode

判斷字符串中是否包含某個字符或小字符串:includes

截取字符串:slice/substr/subtring

判斷字符串是否由某個字符或小字符串開頭:startsWith

判斷字符串是否由某個字符或小字符串結(jié)尾:endsWith

重復(fù)某個字符串:repeat

查找字符串中第一個滿足指定正則表達(dá)式的小字符串的下標(biāo):search

提取字符串中滿足正則表達(dá)式的小字符串:match

八、數(shù)學(xué)操作

隨機(jī)數(shù):random - 某個范圍內(nèi)的隨機(jī)整數(shù)

絕對值:abs

向下取整:floor

向上取整:ceil

平方根:sqrt

圓周率:PI

最大值:max

最小值:min

四舍五入:round

正弦:sin

余弦:cos

求次方:pow

九、進(jìn)制轉(zhuǎn)換

將其他進(jìn)制轉(zhuǎn)為10進(jìn)制 - parseInt

將10進(jìn)制轉(zhuǎn)成其他進(jìn)制:toString

十、時間日期

創(chuàng)建時間日期對象:

new Date() // 獲取當(dāng)前時間日期對象
new Date(參數(shù)) // 指定的時間日期對象

參數(shù):

'年-月-日 時:分:秒'

年,月,日,時,分,秒

時間戳

獲取具體的時間日期:

年:getFullYear

月:getMonth 獲取到的結(jié)果是0~11

日:getDate

時:getHours

分:getMinutes()

秒:getSeconds()

時間戳:getTime

星期:getDay()

設(shè)置具體的時間日期:

年:setFullYear

月:setMonth 設(shè)置的數(shù)字是0~11

日:setDate

時:setHours

分:setMinutes()

秒:setSeconds()

時間戳:setTime

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容