vue中操作數組的相關方法


1,鎖定數組的長度(只讀模式)[ Array.join() ]

var a = [1,2,3] //定義一個數組<br> Object.defineProperty(a,"length",{ writable:false }) //將a數組的長度屬性設為只讀<br> a.length = 0 //將a的長度改為0<br> console.log(a.length); //打印a數組的長度,還是3 

2、將數組合並成字符串(返回字符串)[ Array.join() ]

var a = [1,2,3]; var b = a.join(""); console.log(a); //[1, 2, 3],原數組不改變 console.log(b); //"123",變成字符串 

3、返回逆序數組(倒敘排列數組)[ Array..reverse() ]

var a = [1,2,3]; a.reverse(); console.log(a); //直接改變a數組的值 返回的是[3,2,1] 

4、Array.sort()方法,返回排序后的數組。如果數組包含undefined,會被排到數組的尾部。如果不帶參數的調用sort(),數組元素以字母表順序排序。

從大到小排列
var a = [2,33,1111,444]; a.sort() console.log(a); //返回的結果是[1111, 2, 33, 444] 從小到大排列 var a = [2,33,1111,444]; a.sort(function (a,b) { return a-b }) console.log(a); //[2, 33, 444, 1111] 

5、Array.concat(),創建並返回一個新數組

var a = [1,2,3]; var b = a.concat(4,5); var c = a.concat([4,5]); console.log(a); //返回的還是[1,2,3] console.log(b); //返回[1,2,3,4,5] console.log(c); //返回[1,2,3,4,5] // 復制數組 var a = [1,2,3]; var b = a.concat(); console.log(a); //返回[1,2,3] console.log(b); //返回[1,2,3] 

6、Array.slice()方法,返回指定數組的片段或者子數組。不會改變原數組

var a = [1,2,3,4,5];<br> a.slice(0,3); //返回[1,2,3] 第一個參數是截取開始的位置(包括),第二個參數是截取結束的位置(不包括) a.slice(3); //返回[4,5] a.slice(1,-1); //返回[2,3,4] 負數表示倒數 console.log(a); //返回[1,2,3,4,5] 

7、Array.splice()方法,用來刪除或插入元素,會修改原數組!

數組的起始位置為0 var a = [1,2,3,4,5,6,7,8]; var b = a.splice(1,2); //第一個參數是截取的起始位置(包括),第二個參數是截取的個數,之后的參數就是添加在元數組的新值 console.log(a); //返回[1, 4, 5, 6, 7, 8] console.log(b); //返回[2, 3] 

可以用來解決在數組起始部位加入數據

 this.noticeMessageList.splice(0, 0, { fromUser: 'zhangq1', noticeMessage: '此處添加message'}) 

8、push()方法與pop()方法

push()方法在數組的尾部添加一個或者多個元素,並返回數組的新長度。注意的是,改變的是原數組的值,返回的是新數組的長度。
pop()方法刪除數組的最后一個元素,並返回它的刪除值。也是改變原數組,返回的是刪除的值。

9、unshift()方法與shift()方法

unshift()方法類似於push()不同的是,他是在數組頭部添加,其他都一樣
shift()方法則類比pop()方法。

10、toString()和toLocaleString()

toString()方法將每個元素轉化為字符串,類似於不傳參的join()方法。 toLocaleString()方法是toString()的本地化版本。 

11、forEach()方法,從頭至尾遍歷數組,為每個元素調用指定的函數。

var a = [1,2,3,4,5]; var sum = 0; a.forEach(function (value) { sum += value }) console.log(sum); //sum = 15 

11、map()方法
和forEach()類似,調用數組的每個元素傳遞給指定函數,並返回一個數組,所以它和forEach()的區別在於,有一個返回值。不修改原數組,返回的數組長度和原數組相同

var a = [1,2,3,4,5]; var b = a.map(function (value) { return value+1 }) console.log(b); //返回[2,3,4,5,6] 

12、filter()方法,返回的是調用數組的一個子集。

var a = [1,2,3,4,5]; var b = a.filter(function (value) { return value > 3 }) console.log(b); //返回[4,5] 注意:如果使用map()方法,返回的是[false, false, false, true, true] 

filter()會跳過稀疏數組中缺少的元素,他的返回數組總是稠密的。所以可以用一下方法來壓縮稀疏數組的空缺。

var a = [1,2,,,5]; var b = a.filter(function (value) { return true }) console.log(b); //返回[1,2,5] 

13、every()和some()
every()方法是只有數組中所以元素都滿足某個條件才會返回true;some()方法是只要有滿足條件的值,就返回true。
以every()方法為例

var a = [1,2,3,4,5]; a.every(function (value) { return value < 10 }) //true a.every(function (value) { return value % 2 === 0 }) //false 

14、indexOf()和lastIndexOf()

這兩個方法都是用來搜索整個數組中具有給定值的元素,返回找到的第一個元素的索引,如果沒找到,則返回-1。

區別在於indexOf()從頭至尾搜索,而后者則是反向搜索。

15、數組中對象的遍歷

Arrays.forEach(v => { //v 為數組中的每一項 console.log(v) }) 

16、數組中對象的操作

//根據對象中的某一個屬性值獲取相應的對象 ignoreAnswerMessage(row) { for (var index in this.noticeMessageList) { const indexValue = this.noticeMessageList[index].nmId if (indexValue === row.nmId) { this.noticeMessageList.splice(index, 1) this.newNoticeCount = this.noticeMessageList.length } } Axios.put('http://localhost:60000/noticeMessage/update/' + row.nmId) // }



作者:jianshuqiang
鏈接:https://www.jianshu.com/p/b4d0e3ce4a96


免責聲明!

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



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