成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js數(shù)組常用的一些方法

wendux / 1483人閱讀

摘要:如果被引用的對象發(fā)生改變,則改變將反應(yīng)到新的和原來的數(shù)組中對于字符串和數(shù)字來說不是和對象,會(huì)拷貝字符串和數(shù)字到新的數(shù)組里。在一個(gè)數(shù)組里修改這些字符串或數(shù)字,不會(huì)影響另一個(gè)數(shù)組。

(1) arr.length => 返回一個(gè)數(shù)組中的元素個(gè)數(shù)(數(shù)組屬性

var numbers = [1,2,3,4,5];
numbers.length; // 5

(2) arr.indexOf(searchElement[, fromIndex = 0]) => 返回給定元素在數(shù)組中的第一個(gè)索引值,否則返回-1

var array = [2, 5, 9];
array.indexOf(5);     // 1
array.indexOf(9, 2);  // 2
array.indexOf(2, -3); // 0

(3) arr.lastIndexOf(searchElement[, fromIndex = arr.length - 1]) => 返回指定元素在數(shù)組中最后出現(xiàn)位置的索引值,從 fromIndex 位置向前開始查找,如果不存在,則返回 -1

var arr = [2, 5, 9, 2];
arr.lastIndexOf(2);     // 3
arr.lastIndexOf(7);     // -1
arr.lastIndexOf(2, 3);  // 3
arr.lastIndexOf(2, 2);  // 0
arr.lastIndexOf(2, -2); //0

(4) arr.push(element1, ..., elementN) => 在數(shù)組的末尾添加一個(gè)或多個(gè)元素,并返回?cái)?shù)組新的 length 值

var sports = ["soccer", "baseball"];
var total = sports.push("football", "swimming");

console.log(sports); // ["soccer", "baseball", "football", "swimming"]
console.log(total);  // 4

(5) arr. unshift(element1, ..., elementN) => 在數(shù)組的開頭添加一個(gè)或者多個(gè)元素,并返回?cái)?shù)組新的 length 值

var sports = ["soccer", "baseball"];
var total = sports.unshift("football", "swimming");

console.log(sports); // ["football", "swimming", "soccer", "baseball"]
console.log(total);  // 4

(6) arr.pop() => 刪除數(shù)組中的最后的一個(gè)元素,并且返回這個(gè)元素

var myFish = ["angel", "clown", "mandarin", "surgeon"];
var popped = myFish.pop();

console.log(myFish); // ["angel", "clown", "mandarin"]
console.log(popped); // "surgeon"

(7) arr.shift() => 刪除數(shù)組中的第一個(gè)元素,并且返回這個(gè)元素

var myFish = ["angel", "clown", "mandarin", "surgeon"];
var shifted = myFish.shift();

console.log(myFish); // ["clown", "mandarin", "surgeon"]
console.log(shifted); // "angel"

(8) arr.concat(value1, value2, ..., valueN) => 將傳入的數(shù)組或值與原數(shù)組合并,組成一個(gè)新的數(shù)組并返回

var alpha = ["a", "b", "c"];
var numeric = [1, 2, 3];
var alphaNumeric = alpha.concat(numeric);        // 組成新數(shù)組 ["a", "b", "c", 1, 2, 3]; 原數(shù)組 alpha 和 numeric 未被修改
var alphaNumeric2 = alpha.concat(1,[2,3,[4,5]]); // 組成新數(shù)組 ["a", "b", "c", 1, 2, 3, [4,5]]

(9) arr.reverse() => 顛倒數(shù)組中元素的位置,并返回該數(shù)組的引用

var myArray = ["one", "two", "three"];
myArray.reverse(); 
console.log(myArray); // ["three", "two", "one"]

(10) array.splice(start, deleteCount[, item1[, item2[, ...]]]) => 用新元素替換舊元素,修改數(shù)組的內(nèi)容;返回由被刪除的元素組成的數(shù)組

// start 從數(shù)組對哪一位開始修改內(nèi)容
// deleteCount 整數(shù),表示要移除的數(shù)組元素的個(gè)數(shù)
// itemN 要添加進(jìn)數(shù)組的元素
var myFish = ["angel", "clown", "mandarin", "surgeon"];
myFish.splice(2, 0, "drum"); // []  "增"
console.log(myFish); // ["angel", "clown", "drum", "mandarin", "surgeon"]

myFish.splice(1,2); // ["clown", "drum"]   "刪"
console.log(myFish); // ["angel", "mandarin", "surgeon"]

myFish.splice(0, 2, "parrot", "anemone", "blue"); // ["angel", "mandarin"]   "改"
console.log(myFish); // ["parrot", "anemone", "blue", "surgeon"]

(11) arr.slice([begin[, end]]) => 把數(shù)組中的一部分淺拷貝,存入到一個(gè)新的數(shù)組中,并返回這個(gè)新數(shù)組

// 原數(shù)組的元素按照下述規(guī)則拷貝:
// 1.如果該元素是個(gè)對象引用(不是實(shí)際的對象),slice會(huì)拷貝這個(gè)對象引用到新的數(shù)組
//   里。兩個(gè)對象都引用了同一個(gè)對象。如果被引用的對象發(fā)生改變,則改變將反應(yīng)到新的和
//   原來的數(shù)組中;
// 2.對于字符串和數(shù)字來說(不是String和Number對象),slice會(huì)拷貝字符串和數(shù)字到
//   新的數(shù)組里。在一個(gè)數(shù)組里修改這些字符串或數(shù)字,不會(huì)影響另一個(gè)數(shù)組。
// 如果向兩個(gè)數(shù)組任一中添加了新元素,則另一個(gè)不會(huì)受到影響

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
fruits.slice(1,3); // ["Orange", "Lemon"]
console.log(fruits); // ["Banana", "Orange", "Lemon", "Apple", "Mango"]

// slice 方法可以用來將一個(gè)類數(shù)組(Array-like)對象/集合轉(zhuǎn)換成一個(gè)數(shù)組
function list() {
  return Array.prototype.slice.call(arguments);
  // 或者 return [].prototype.slice.call(arguments);
}
var list1 = list(1, 2, 3); // [1, 2, 3]

(12) arr.join([separator = ","]) => 將數(shù)組中的所有元素連接成一個(gè)字符串

var a = ["Wind", "Rain", "Fire"];
var myVar1 = a.join();      // myVar1的值變?yōu)?Wind,Rain,Fire"
var myVar2 = a.join(", ");  // myVar2的值變?yōu)?Wind, Rain, Fire"
var myVar3 = a.join(" + "); // myVar3的值變?yōu)?Wind + Rain + Fire"
var myVar4 = a.join("");    // myVar4的值變?yōu)?WindRainFire"

(13) arr.sort([compareFunction]) => 對數(shù)組的元素排序,并返回這個(gè)數(shù)組;默認(rèn)按照字符串的Unicode碼位點(diǎn)(code point)排序

var fruit = ["cherries", "apples", "bananas"];
fruit.sort(); // ["apples", "bananas", "cherries"]

var scores = [1, 10, 2, 21]; 
scores.sort(); // [1, 10, 2, 21]

//對數(shù)字進(jìn)行升序排序
function compareNumbers(a, b) {
  return a - b;
}
var numbers = [4, 20, 5, 12, 3];
numbers.sort(compareNumbers); // [3, 4, 5, 12, 20]

(14) array.forEach(callback[, thisArg]) => 讓數(shù)組的每一項(xiàng)都執(zhí)行一次 callback 函數(shù);thisArg 是可選參數(shù),用來當(dāng)作callback 函數(shù)內(nèi)this值的對象。注:沒有辦法中止或者跳出forEach循環(huán),除了拋出一個(gè)異常

//callback 函數(shù)傳三個(gè)參數(shù):數(shù)組當(dāng)前項(xiàng)的值、數(shù)組當(dāng)前項(xiàng)的索引、數(shù)組對象本身
function logArrayElements(item, index, array) {
    console.log("a[" + index + "] = " + item);
}
[2, 5, 9].forEach(logArrayElements);
// a[0] = 2
// a[1] = 5
// a[2] = 9

(15) array.map(callback[, thisArg]) => 返回一個(gè)由原數(shù)組中的每個(gè)元素調(diào)用一個(gè)指定方法后的返回值組成的新數(shù)組

var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
console.log(numbers); // [1, 4, 9]
console.log(roots); // [1, 2, 3]

(16) arr.reduce(callback,[initialValue]) => 接收一個(gè)callback函數(shù)作為累加器(accumulator),數(shù)組中的每個(gè)值(從左到右)開始合并,最終為一個(gè)值

// callback 函數(shù)傳四個(gè)參數(shù):
//   @param previousValue 上一次調(diào)用回調(diào)返回的值,或者是提供的初始值(initialValue)
//   @param currentValue 數(shù)組中當(dāng)前被處理的元素
//   @param index 當(dāng)前元素在數(shù)組中的索引
//   @param array 調(diào)用 reduce 的數(shù)組

function accAdd(previousValue, currentValue, index, array){
  return previousValue + currentValue;
};
[0,1,2,3,4].reduce(accAdd); // 10 第一次調(diào)用時(shí),previousValue = 0,currentValue = 1
[0,1,2,3,4].reduce(accAdd,10); // 20 第一次調(diào)用時(shí),previousValue = 10,currentValue = 0

//eg.將數(shù)組所有項(xiàng)相加
var total = [0, 1, 2, 3].reduce(function(a, b) {
    return a + b;
});
console.log(total); // 6

//eg.數(shù)組扁平化
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
    return a.concat(b);
});
console.log(flattened); // [0, 1, 2, 3, 4, 5]

(17) arr.every(callback[, thisArg]) => 測試數(shù)組的所有元素是否都通過了指定函數(shù)的測試

// callback 被調(diào)用時(shí)傳入三個(gè)參數(shù):元素的值,元素的索引,被遍歷的數(shù)組
function isBigEnough(element, index, array) {
  return (element >= 10);
}
[12, 5, 8, 130, 44].every(isBigEnough);   // false
[12, 54, 18, 130, 44].every(isBigEnough); // true

(18) arr.some(callback[, thisArg]) => 測試數(shù)組中的某些元素是否通過了指定函數(shù)的測試

// callback 被調(diào)用時(shí)傳入三個(gè)參數(shù):元素的值,元素的索引,被遍歷的數(shù)組
function isBigEnough(element, index, array) {
  return (element >= 10);
}
[2, 5, 8, 5, 4].some(isBigEnough);   // false
[2, 3, 4, 5, 11].some(isBigEnough); // true

(19) arr.filter(callback[, thisArg]) => 使用指定的函數(shù)測試所有元素,并創(chuàng)建一個(gè)包含所有通過測試的元素的新數(shù)組

function isBigEnough(element, index, array) {
  return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/86324.html

相關(guān)文章

  • JS內(nèi)置對象-Array數(shù)組對象一些常用方法區(qū)分

    摘要:語法添加刪除項(xiàng)目的位置要?jiǎng)h除的項(xiàng)目數(shù)量要添加的第一個(gè)元素第二個(gè)第三個(gè)返回值被刪除的項(xiàng)目,如果有的話其中,第二個(gè)參數(shù)如果設(shè)置為,則不會(huì)刪除任何項(xiàng)目。 第一篇篇幅太長了,自己回顧都覺得有點(diǎn)傷神。。以后盡量多篇少字~ 首先簡單介紹Array數(shù)組對象 什么是數(shù)組: 用單獨(dú)的變量名存儲一系列的值 如何創(chuàng)建數(shù)組:(有3種方法) 1、常規(guī)方式: var gyt=new Array(); gyt[0...

    zorro 評論0 收藏0
  • js數(shù)組一些常用方法

    摘要:數(shù)組取差循環(huán)數(shù)組取交集利用方法取交集循環(huán)判斷數(shù)組里的元素在里面有沒有,有的話就放入新建立的數(shù)組中數(shù)組去重去除數(shù)組的重復(fù)成員二維數(shù)組轉(zhuǎn)一維數(shù)組二維數(shù)組轉(zhuǎn)為一維數(shù)組 1、數(shù)組取差 //es6 arryMinus (arry1,arry2){ let a = new Set(arry1); let b = new Set(arry2); ...

    aervon 評論0 收藏0
  • js封裝一些常用方法

    摘要:整理自己常用的一些封裝方法數(shù)組按照指定長度拆分?jǐn)?shù)組按指定長度拆分刪除數(shù)組中指定元素刪除數(shù)組中指定元素將小數(shù)指定到精確位置將小數(shù)字符串精確到指定位數(shù)字符串類型的小數(shù)精確到小數(shù)點(diǎn)第幾位根據(jù)微妙時(shí)間戳獲取年月日時(shí)分秒根據(jù)微妙時(shí)間戳獲取年月日時(shí)分秒 整理自己常用的一些封裝方法 1.數(shù)組按照指定長度拆分 // 數(shù)組按指定長度拆分 export function chunk (data, coun...

    senntyou 評論0 收藏0
  • js數(shù)組常用方法總結(jié)

    摘要:在為的位置,刪除個(gè)元素,插入刪了為的元素,替換為刪了為的元素?cái)?shù)組的增刪改都可以用完成返回從原數(shù)組中指定開始下標(biāo)到結(jié)束下標(biāo)之間的項(xiàng)組成的新數(shù)組該方法不會(huì)改變原始數(shù)組。不傳值表示克隆了除了正常用法,經(jīng)常用來將對象轉(zhuǎn)換為。 js 中數(shù)組的常用方法總結(jié) arr.fill(a);//所有子元素 都改為 a; [{a: 1},{b: 2}, ...Array(8).fill({}, 0)] //...

    luckyw 評論0 收藏0
  • 深入了解JS數(shù)組常用方法

    摘要:數(shù)組作為一種重要的數(shù)據(jù)類型,除了基礎(chǔ)的幾個(gè)方法外,還有很多實(shí)用的方法也是我們的必備技能。原數(shù)組不會(huì)改變。詳細(xì)語法請參考讓每個(gè)人都干點(diǎn)啥方法對數(shù)組的每個(gè)元素執(zhí)行一次提供的函數(shù),該方法沒有返回值。 數(shù)組作為一種重要的數(shù)據(jù)類型,除了基礎(chǔ)的 pop、push、shift、unshift 幾個(gè)方法外,還有很多實(shí)用的方法也是我們的必備技能。 假設(shè)我們有一隊(duì)人,如下圖:showImg(https:/...

    ningwang 評論0 收藏0
  • 工作中常用es6+特性

    摘要:結(jié)合工作中使用情況,簡單對進(jìn)行一些復(fù)習(xí)總結(jié),包括常用的語法,等,以及短時(shí)間內(nèi)要上手需要重點(diǎn)學(xué)習(xí)的知識點(diǎn)不同工作環(huán)境可能有一些差別,主要參考鏈接是阮一峰的博客以及外文博客阮老師大部分文章是直接翻譯的這個(gè)博客簡介先說一下,是一個(gè)標(biāo)準(zhǔn)化組織,他們 結(jié)合工作中使用情況,簡單對es6進(jìn)行一些復(fù)習(xí)總結(jié),包括常用的語法,api等,以及短時(shí)間內(nèi)要上手需要重點(diǎn)學(xué)習(xí)的知識點(diǎn)(不同工作環(huán)境可能有一些差別),...

    xcold 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<