Heim > Artikel > Web-Frontend > Zusammenfassung von 20 gängigen JavaScript-Array-Operationen
Das Array
-Objekt in JavaScript ist, wie Arrays in anderen Programmiersprachen, eine Sammlung von Daten. In JavaScript können die Daten in einem Array unterschiedlichen Typs sein und verfügen über Methoden zum Ausführen allgemeiner Operationen an Arrays. Array
对象与其他编程语言中的数组一样,是一组数据的集合。在JavaScript中,数组里面的数据可以是不同类型的,并具有用于执行数组常见操作的方法。
有三种不同的声明方式
const hobbys = new Array() hobbys[0] = 'Basketball' hobbys[1] = 'Badminton' hobbys[2] = 'swimming' console.log(hobbys) // [ 'Basketball', 'Badminton', 'swimming' ]
const hobbys = new Array('Basketball', 'Badminton','swimming') console.log(hobbys) // [ 'Basketball', 'Badminton', 'swimming' ]
const hobbys = ['Basketball','Badminton','swimming'] console.log(hobbys) // [ 'Basketball', 'Badminton', 'swimming' ]
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。没有返回值,本质上等同于 for 循环,对每一项执行 function 函数。不会改变原数组。
// currentValue:必需,当前元素 index:可选,当前元素的索引值 arr:可选,当前元素所属的数组对象。 array.forEach(function(currentValue, index, arr))
let array = ['a', 'b', 'c'] let func = (currentValue, index, arr) => { currentValue += 's' console.log('currentValue:' + currentValue + ' index:' + index + ' arr:' + arr) } array.forEach(func) console.log(array) // 控制台输出: // currentValue:as index:0 arr:a,b,c // currentValue:bs index:1 arr:a,b,c // currentValue:cs index:2 arr:a,b,c // [ 'a', 'b', 'c' ]
通过指定函数处理数组的每个元素,并返回处理后的数组。
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。方法按照原始数组元素顺序依次处理元素。不会改变原数组。
// currentValue:必须,当前元素的值 index:可选,当前元素的索引值 arr:可选,当前元素属于的数组对象 array.map(function(currentValue,index,arr))
let array = [1, 2, 3, 4, 5] let result = array.map((item) => { return item += 5 }) console.log(array) console.log(result) // [ 1, 2, 3, 4, 5 ] // [ 6, 7, 8, 9, 10 ]
JavaScript中的 concat()
方法用来连接两个或更多的数组,并返回结果。
// array1, array2, ..., arrayN 必需,该参数可以是具体的值,也可以是数组对象,可以是任意多个 array1.concat(array2,array3,...,arrayN)
const array1 = ['a', 'b', 'c'] const array2 = ['d', 'e', 'f'] const array3 = array1.concat(array2) console.log(array3) const array4 = array1.concat('123') console.log(array4) // [ 'a', 'b', 'c', 'd', 'e', 'f' ] // [ 'a', 'b', 'c', '123' ]
Javascript数组中的 push()
方法用来向数组的末尾添加一个或更多元素,并返回新的长度。
let fruits = ["Banana", "Orange", "Apple", "Mango"] let length = fruits.push("Kiwi") console.log(fruits) console.log(length) // [ 'Banana', 'Orange', 'Apple', 'Mango', 'Kiwi' ] // 5
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
let fruits = ["Banana", "Orange", "Apple", "Mango"] let length = fruits.unshift("Lemon", "Pineapple") console.log(fruits) console.log(length) // [ 'Lemon', 'Pineapple', 'Banana', 'Orange', 'Apple', 'Mango' ] // 6
pop() 方法用于删除数组的最后一个元素并返回删除的元素。
let sites = ['Google', 'Runoob', 'Taobao', 'Zhihu', 'Baidu'] let result = sites.pop() console.log(sites) console.log(result) // [ 'Google', 'Runoob', 'Taobao', 'Zhihu' ] // Baidu
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值
let fruits = ["Banana", "Orange", "Apple", "Mango"]; let result = fruits.shift() console.log(fruits) console.log(result) // [ 'Orange', 'Apple', 'Mango' ] // Banana
splice() 方法用于添加或删除数组中的元素,并返回删除的元素数组
// 参数 Values: index: 必需,规定从何处添加/删除元素 // howmany: 可选,规定应该删除多少元素 必须是数字,但可以是 "0" // item1, ..., itemX 可选,要添加到数组的新元素 array.splice(index,howmany,item1,.....,itemX)
let fruits = ["Banana", "Orange", "Apple", "Mango"] let result = fruits.splice(1, 2, "Lemon", "Kiwi") console.log(fruits) console.log(result) // [ 'Banana', 'Lemon', 'Kiwi', 'Mango' ] // [ 'Orange', 'Apple' ]
slice() 方法可从已有的数组中返回选定的元素。也可提取字符串的某个部分,并以新的字符串返回被提取的部分。不会改变原数组。
// start: 可选,规定从何处开始选取 若为负值,表示从原数组中的倒数第几个元素开始提取 // end: 可选,规定从何处结束选取 如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素 array.slice(start, end)
let fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"] let result1 = fruits.slice(1, 3) let result2 = fruits.slice(2) console.log(fruits) console.log(result1) console.log(result2) // [ 'Banana', 'Orange', 'Lemon', 'Apple', 'Mango' ] // [ 'Orange', 'Lemon' ] // [ 'Lemon', 'Apple', 'Mango' ]
join() 方法可将所有数组元素结合为一个字符串。它的行为类似 toString(),但是您还可以规定分隔符
// separator: 可选,指定要使用的分隔符 如果省略该参数,则使用逗号作为分隔符 array.join(separator)
let fruits = ["Banana", "Orange", "Apple", "Mango"]; let energy1 = fruits.join(); let energy2 = fruits.join('-'); console.log(energy1) console.log(energy2) // Banana,Orange,Apple,Mango // Banana-Orange-Apple-Mango
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
array.every(function(currentValue,index,arr))
let ages = [32, 33, 16, 40] let nums = [32, 33, 19, 40] function checkAdult(age) { return age >= 18 } function checkNums(num) { return num >= 18 } // 16不满足大于18,故结果false let result1 = ages.every(checkAdult) // 每一项都满足条件,故结果true let result2 = nums.every(checkNums) console.log(result1) console.log(result2) // false // true
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。不会改变原数组。
array.filter(function(currentValue,index,arr), thisValue)
let ages = [32, 33, 16, 40]; function checkAdult(age) { return age >= 18; } let result = ages.filter(checkAdult) console.log(result) // [ 32, 33, 40 ]
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。没有找到会返回-1
// searchvalue: 必需。规定需检索的字符串值。 // start: 可选的整数参数。规定在字符串中开始检索的位置。值:0~array.length-1 string.indexOf(searchvalue,start)
let str = "Hello world, welcome to the universe."; // 输出w所在的下标索引13(空格也算),没有找到会返回-1 let n = str.indexOf("welcome"); console.log(n) console.log(str[n]) // 13 // w
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
let numbers = [2, 3, 5, 6] function getSum(total, num) { return total + num } let result = numbers.reduce(getSum, 0) console.log(result) // 16
reverse() 方法用于颠倒数组中元素的顺序。会改变原数组,并返回改变顺序的数组。
let fruits = ["Banana", "Orange", "Apple", "Mango"] let resut = fruits.reverse() console.log(fruits) console.log(resut) // [ 'Mango', 'Apple', 'Orange', 'Banana' ] // [ 'Mango', 'Apple', 'Orange', 'Banana' ]
sort() 方法用于对数组的元素进行排序。排序顺序可以是字母或数字,并按升序或降序。
// sortfunction: 可选。规定排序顺序。必须是函数。 array.sort(sortfunction)
let fruits = ["Banana", "Orange", "Apple", "Mango"] let ages = [9, 3, 4, 5, 7, 10] // 升序 let agesFunAsc = function (ag1,ag2) { return ag1 - ag2 } // 降序 let agesFunDes= function (ag1,ag2) { return -(ag1 - ag2) } fruits.sort() ages.sort(agesFunAsc) console.log(fruits) console.log(ages) ages.sort(agesFunDes) console.log(ages) // [ 'Apple', 'Banana', 'Mango', 'Orange' ] // [ 3, 4, 5, 7, 9, 10 ] // [ 10, 9, 7, 5, 4, 3 ]
toString() 方法用于把数字转换为字符串。
number.toString(radix)
let num = 15 let n = num.toString() // 也可以使用不同的进制把一个数字转换为字符串 // 2进制 let b = num.toString(2); // 8进制 let c = num.toString(8); // 16进制 let d = num.toString(16); console.log(n) console.log(b) console.log(c) console.log(d) // 15 // 1111 // 17 // f
at()
array.at(index)
let str = 'helso word' let item1 = str.at(2) let item2 = str.at(-1) console.log(item1) console.log(item2) // l // d
array.find(function(currentValue, index, arr),thisValue)
let ages = [3, 10, 18, 20]; function checkAdult(age) { return age >= 18; } let value = ages.find(checkAdult) console.log(value) // 18
array.some(function(currentValue,index,arr),thisValue)
let ages = [3, 10, 19, 20]; function checkAdult(age) { return age > 18; } let result = ages.some(checkAdult) console.log(result) // truerrreee
concat()
-Methode in JavaScript wird verwendet, um zwei oder mehr Arrays zu verketten und das Ergebnis zurückzugeben. 🎜🎜rrreeerrreeepush()
-Methode im Javascript-Array wird verwendet, um ein oder mehrere Elemente am Ende des Arrays hinzuzufügen , und Gibt die neue Länge zurück. 🎜🎜rrreeeat()
-Methode akzeptiert einen ganzzahligen Wert und gibt den Wert des at-Index zurück, sowohl positive als auch negative ganze Zahlen sind akzeptabel. Eine negative Ganzzahl bedeutet, dass vom letzten Element im Array abwärts gezählt wird. 🎜rrreeerrreee🎜19. Die Methode find🎜🎜🎜find() gibt den Wert des ersten Elements des Arrays zurück, das den Test besteht (beurteilt innerhalb der Funktion). 🎜🎜rrreeerrreee🎜20. Die Methode some🎜🎜🎜some() wird verwendet, um zu erkennen, ob die Elemente im Array die angegebenen Bedingungen erfüllen (bereitgestellt durch die Funktion). 🎜🎜rrreeerrree🎜Das obige ist der detaillierte Inhalt vonZusammenfassung von 20 gängigen JavaScript-Array-Operationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!