js es6語法 字串和陣列的方法

2022-03-12 16:17:36 字數 4000 閱讀 8652

s的方法

根據index取value:

取首尾項,arr[0], arr[arr.length-1]

根據value取index(判斷是否包含子字串):

s.indexof

栗子:'maotai'.indexof('mao'), 如果不包含則返回-1,如果包含返回子字串下標

取切片s.substr(1,3) //含3

s.substring(1,3)//不含3

和arr之間的轉換:

s.split: s轉為arr

s = 'maotai|maomao'

s.split('|') // ["maotai", "maomao"]

arr.join: arr轉為s

arr = ["maotai", "maomao"]

arr.join('|') // 'maotai|maomao'

arr.tostring和arr.tofixed

arr.tosting() //["mao", "tai"] --> "mao, tai"

price.tofixed(2) //數字型別保留2位小數

// 合併陣列(栗子: 將二維陣列合併為一維陣列, reduce+arr.concat(arr2))

arr.concat(arr2)

// 1.for迴圈遍歷陣列

arr = ['mao', 'tai'];

for (let i = 0; i < arr.length; i++)

// 2,foreach 不支援return

// 3,for in,key轉換為str型別, 陣列的私有屬性也列印了.

// 4.for of, 既能return,又不會遍歷私有屬性

arr = ['mao', 'tai'];

for(val of arr)

引數型別: 基本都是**函式

返回值:

修改自身: 否

**函式返回值:

arr的方法

1.arr.foreach: 遍歷

注: 不支援return

返回值: 無

修改自身: 否

**函式返回值:無(不支援return)

//arr的foreach迴圈

arr.foreach(function (item, index) );

//arr的forin迴圈

let arr = ['mao','tai'];

for(let i in arr)

//0 string

//物件的遍歷(遍歷key, 遍歷values)

let obj = ;

console.log(object.keys(obj)); //取index, [ 'name', 'age' ]

console.log(object.values(obj)); //取items, [ 'maotai', 22 ]

for(i in object.keys(obj))

2.arr.map

注: 支援return

返回值: newarr

修改自身: 否

**函式返回值:對老陣列每個item處理的結果, 作為新陣列的item

栗子: 得出arr每項*10的newarr

let arr2 = arr.map(function (index, item) );

栗子:產生'123'

let res2 = [1, 2, 3].map(function (item) `; //es6的字串模板寫法.

});console.log(res2.join('')); // 123

3.arr.filter

功能: 過濾arr,得到newarr

返回值: newarr

修改自身: 否

**函式返回值:布林, 如果true,新增到新陣列

栗子: 過濾arr 2-5之間的數字

let res2 = [0, 1, 2, 3, 4, 5].filter(function (item) );

栗子: 刪除表單

remove(p)

4.arr.reduce: 收斂

功能: 將arr的item合併(收斂)

返回值: newarr

修改自身: 否

**函式返回值:布林

// **arr.reduce(**())**函式的4個引數

let res = arr.reduce(function (prev, next, index, item) );

console.log(res);

// 栗子1: 計算**

let res1 = [0,,,

].reduce(function (prev, next) );

//更優雅的寫法

let res2 = [,,

].reduce(function (prev, next) , 0);

// 栗子2: 二維陣列變一維陣列

let res3 = [

[1,2,3],

[4,5,6],

[7,8,9]

].reduce(function (prev,next) );

console.log(res3);

1.arr.include:判斷是否包含此項

功能: arr中是否包含某一項

返回值: 布林

修改自身: 否

[1,2,3].includes(1) //true

[1,2,55]

2.arr.find:查詢每項中是否包含關鍵字,

功能: 返回包含某個子字元的item.

返回值: 找到的那一項item

修改自身: 否

**函式返回值:布林, 返回true,表示找到, 找到後立即停止遍歷.

栗子: 取出包含子字串的item

let res = ['maotai','tai'].find(function (item) );

console.log(res);

//本質演算法: 'maotai'.indexof('mao')

3, arr.every

功能: 找false,找到false後停止,返回false

引數: **函式

返回值: 布林

栗子: 檢測arr所有元素是否都大於18

let res = [23, 33, 43].every(function (item) );

console.log(res); //true

4.arr.some(和arr.every相反)

功能: 找true,找到true後停止,返回true

箭頭函式:

1, 無關鍵字

2, 如果1個引數, 則可以省掉小括號

3, 無this, this指向上一級作用域的this

// function fn(age)

fn = age => console.log(age);

fn(20);

function add1(arg)

add_1(10); // 11

let arg2 = arg=>arg+2;

add2(10); //12

// 有{}必須寫return關鍵字,

let arg2 = arg=>;

// 無{},箭頭後面的內容預設return

let arg2 = arg=> arg+2;

///如果函式不需要命名

age => console.log(age);

// 箭頭函式解決了this問題. this指向上一級

created() , err => );

},栗子:

axios.get('./carts.json').then(res => , err => )

js es6 標籤模板還原字串

模板字串的功能,它可以緊跟在乙個函式名後面,該函式將被呼叫來處理這個模板字串。這被稱為 標籤模板 功能 tagged template 舉個栗子 第乙個引數是陣列,使用變數進行切割。後面是變數的值。那麼其切割的規則是什麼呢?如何還原字串呢?請看正文。分兩種情況 第一種情況 a b c d e a c...

js es6中陣列的變化

1.擴充套件運算子 js 2.arrya.form js let arr 1,2,3 let arr3 array.from arr 傳進去的不管是類陣列還是陣列返回的都是陣列 arguments function show show 1,2,3,4,5 當json中有length的時候 也可以當成...

備忘錄 js es6中新增的字串方法

1.string.fromcodepoint 可以識別大於0xffff的碼點,彌補string.fromcharcode 的不足 返回乙個字串 2.string.raw 返回乙個斜槓都被轉義的字串,主要用於處理模板字串 模板字串 string.raw hi n 返回 hi n string.raw ...