記錄一下經常使用的數組和對象的一些方法數組
// 做用:把一個元素或多個元素,從數組後面添加到數組裏面; // 參數:添加的數據 // 返回:添加後的數組的長度; let arr = [1, 2, 3]; arr.push(5, "6");
let result = [].find(function(item,index,self){ return true; }); // 回調函數有三個參數,分別表示:數組元素的值、索引、整個數組 // 若是某次循環返回的是true,find方法的返回值就是知足這個條件的第一個元素。 // 若是沒有找到會返回undefined。 // 用法:找數組中第一個小於0的數字 let arr = [1, 2, 4, 0, -4, 3, -2, 9]; let result = arr.find(function (item) { return item < 0; }); let result =arr.find(item=>item<0) // -4
// 參數:函數(被傳入的函數,回調函數) // 格式要求: // item 回調函數,表明每一次遍歷的數據 // return 判斷條件 // 返回:知足條件的第一個元素的下標,若沒有,返回-1; var index = arr.findIndex(function(item) { return item === 20; }); console.log(index); // 根據 nowArticleID 把其在 articleList 數組中的下標給得到到 const index = this.articleList.findIndex( item => item.art_id === this.nowArticleID )
// 做用:從數組的後面刪除一個元素 // 參數:無; // 返回:被刪除的元素; var arr = [2,5,9,8,7,6] var res = arr.pop(); console.log(arr, res);
// 做用:從數組前面添加數據(一個或者多個) // 參數:一個或者多個; // 返回:添加後的數組的長度 var l = arr.unshift("a", "b"); console.log(arr, l);
// 做用:從數組的前面刪除一個元素 // 參數:無; // 返回:被刪除的元素; var arr = [2,5,9,8,7,6] var res = arr.shift(); console.log(arr, res);
// 獲取頻道的所有id,以數組格式返回 const userChannelIds = this.channelList.map(item => { return item.id }) var a = [1,2,3,4,5] var b = a.map(function(current,index,array){ return current + 1 }) console.log(b) // [2,3,4,5,6] console.log(a) // [1,2,3,4,5]
// 做用:對當前數組必定的過濾; // 參數:函數(函數)格式要求: // 函數參數:item,index,arr // item:每一個數據 // index:下標; // arr:當前遍歷的數組; // return 過濾條件; 返回是true,把當前知足條件的item 放入新的數組中 // 返回:返回過濾後的新數組; var arr_1 = arr.filter(function(item, index, arr) { // 過濾條件; 返回是true,把當前知足條件的item 放入新的數組中 return item == 10; }); console.log(arr, arr_1); const rest = this.channelAll.filter(item => { // Array.includes判斷是否包含該元素 return !userChannelIds.includes(item.id) })
includes方法,判斷數組是否包含指定的元素。返回 true / false 數組.includes(參數1,參數2) // 參數1,必須,表示查找的內容 // 參數2,可選,表示開始查找的位置,0表示從第一個元素開始找。默認值是0。 let arr = [1, 4, 3, 9]; console.log(arr.includes(4)); // true console.log(arr.includes(4, 2)); // false, 從下標爲2的位置開始查,因此沒有找到4 console.log(arr.includes(5)); // false
// 數組.concat(); // 傳入:拼接的數據。 // 返回:新數組; // 傳入1個數據 var arr = [1, 2]; var Arr = arr.concat("abc"); console.log(arr, Arr); // 傳入多個數據 var Arr = arr.concat("a", "b", "c", "d", "e", "f"); console.log(arr, Arr); // 傳入1個數組 var Arr = arr.concat(["aa", "bb"]); console.log(arr, Arr); // 傳入多個數組 var Arr = arr.concat(["aa", "bb"], [77, 88]); console.log(arr, Arr);
var arr = ['a', 'b', 'c', 'd', 'e']; // 刪除: // 參數:第一個參數是開始的下標,第二個參數:要刪除的個數; // 返回:被刪除元素的數組; var res = arr.splice(3, 1); console.log(arr);----->['a', 'b', 'c', 'e'] 刪除元素對原數組進行操做 console.log(res);----->['d'] // 添加: // 參數:第一個參數:開始的下標;第二個參數:刪除的個數;後面參數:要添加的數據,從開始的下標位置添加; // 返回:沒有刪除,返回[] var res = arr.splice(3, 0, "AA", 18); console.log(arr); ---->["a", "b", "c", "AA", 18, "d", "e"] console.log(res); ---->[] // 修改: // 參數:第一個參數:開始的下標;第二個參數:刪除的個數;後面參數:要添加替換的數據,從開始的下標位置; // 返回:被替換的數據的數組; var res = arr.splice(3, 1, "HH"); console.log(arr); ----->["a", "b", "c", "HH", "e"] console.log(res); ----->["d"]
var str = '劉備|關羽|張飛'; console.log(str); // 字符串---->數組: // 參數:分隔符 // 返回:數組; var arr = str.split("|"); console.log(arr); // 數組----->字符串 // 參數:分隔符; // 返回:字符串; var str_1 = arr.join("*_*"); console.log(str_1);
// 參數:被查找的元素 // 返回:被查找的元素的下標索引(沒有找到返回-1) // 場景:查找數組中有沒有咱們須要的數據; var arr = [1, 10, 20]; var index = arr.indexOf("a"); console.log(index); ----->-1
var arr = [0, 10, 10, 10, 20]; // 做用:遍歷數組 // 參數:函數(函數)格式要求: // 函數參數:item,index,arr // item:每一個數據 // index:下標; // arr:當前遍歷的數組; var max = arr[1]; arr.forEach(function(item, index, arr) { console.log(item, index, arr); if (item > max) { max = item; } }); console.log(max);
// 做用:截取數組 // 參數: // 返回:被截取的新數組; var arr = ['a', 'b', 'c', 'd', 'e']; // 參數:2個參數。第一個參數從哪一個下標開始(包括),截取到哪一個下標結束(不包括), var res = arr.slice(1, 4); console.log(arr, res); // 參數:1個參數,從哪一個下標開始,一直到結尾都要截取 var arr_1 = arr.slice(1); console.log(arr_1); // 參數:沒有參數,所有截取,複製數組; var res = arr.slice(); // 數組:複雜數據類型; console.log(res, arr); console.log(res == arr); ---->false
// sort() 方法用於對數組的元素進行排序。 var arr = [11,52,74,85,96,15]; arr.sort(sortby) // sortby 可選。規定排序順序。必須是函數。 // 返回值:對數組的引用。 // 注意:數組在原數組上進行排序,不生成副本。 // 若是調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現這一點,首先應把數組的元素都轉換成字符串(若有必要),以便進行比較。 // 若是想按照其餘標準進行排序,就須要提供比較函數,該函數要比較兩個值,而後返回一個用於說明這兩個值的相對順序的數字。比較函數應該具備兩個參數 a 和 b,其返回值以下: // 若 a 小於 b,在排序後的數組中 a 應該出如今 b 以前,則返回一個小於 0 的值。 // 若 a 等於 b,則返回 0。 // 若 a 大於 b,則返回一個大於 0 的值。
// reverse() 方法用於顛倒數組中元素的順序。 var arr = [11,52,74,85,96,15]; arr.reverse(); // 注意:該方法會改變原來的數組,而不會建立新的數組。
var arr1 = [1, 2, 3]; var arr2 = [...arr1];
let arr1 = [1, 2, 3, 3, 4, 5]; let arr = [...new Set(this.arr1)]
some() 方法會依次執行數組的每一個元素:函數
若是有一個元素知足條件,則表達式返回true , 剩餘的元素不會再執行檢測。
若是沒有知足條件的元素,則返回false。
注意:this
some() 不會對空數組進行檢測。
some() 不會改變原始數組編碼
// 檢索數組中是否存在某個值 function some(item,index,arr){ if(item == 10){ console.log (item+"存在於這個數組"); } console.log (item+"不存在於這個數組"); } var a = [11,50,40,3,5,80,90,4]; a.some(some) // 10不存在於這個數組 // false
let arr = [1, 2, 3, 4, 5]; console.log(Array.isArray(arr)) // true let str = "12345" console.log(Array.isArray(str)) // false
let arr = [1, 2, 3, 4, 5]; let str = arr.toString() console.log(str) // 1,2,3,4,5
// 此方法是將全部元素進行判斷返回一個布爾值,若是全部元素都知足判斷條件,則返回true,不然爲false: let arr = [1, 2, 3, 4, 5] const isLessThan4 = value => value < 4 const isLessThan6 => value => value < 6 arr.every(isLessThan4 ) //false arr.every(isLessThan6 ) //true
轉載文章,若有侵犯,聯繫刪除!.net