JavaScript 中常用的列表(数组)方法有很多,以下是一些常见的方法:
push()
: 在列表末尾添加一个或多个元素。
pop()
: 移除并返回列表的最后一个元素。
shift()
: 移除并返回列表的第一个元素。
unshift()
: 在列表开头添加一个或多个元素。
concat()
: 连接两个或多个列表,并返回一个新的列表。
slice()
: 返回列表的指定部分(子列表)。
splice()
: 从列表中添加、移除或替换元素。
indexOf()
: 返回指定元素在列表中首次出现的索引。
lastIndexOf()
: 返回指定元素在列表中最后一次出现的索引。
join()
: 将列表中的所有元素以指定的分隔符连接成一个字符串。
forEach()
: 遍历列表中的每个元素,并对其执行指定的操作。
map()
: 创建一个新的列表,其中的元素是对原始列表中的每个元素执行指定操作的结果。
filter()
: 创建一个新的列表,其中的元素是满足指定条件的原始列表中的元素。
reduce()
: 对列表中的元素进行累积计算,返回一个结果。
sort()
: 对列表中的元素进行排序。
reverse()
: 颠倒列表中元素的顺序。
下面是使用实例:
push()
:向数组末尾添加一个或多个元素,并返回新的长度。
let arr = [1, 2, 3];
arr.push(4);
console.log(arr); // 输出 [1, 2, 3, 4]
pop()
:从数组末尾移除最后一个元素,并返回该元素的值。
let arr = [1, 2, 3];
let removedElement = arr.pop();
console.log(arr); // 输出 [1, 2]
console.log(removedElement); // 输出3
shift()
:从数组开头移除第一个元素,并返回该元素的值。
let arr = ['apple', 'banana', 'orange'];
let removedElement = arr.shift();
console.log(arr); // 输出 ['banana', 'orange']
console.log(removedElement); // 输出 'apple'
unshift()
:向数组开头添加一个或多个元素,并返回新的长度。
let arr = ['banana', 'orange'];
arr.unshift('apple');
console.log(arr); // 输出 ['apple', 'banana', 'orange']
concat()
:合并两个或多个数组,不修改原始数组,而是创建并返回新的合并后的结果。
let fruits1 = ['apple', 'banana'];
let fruits2= ['orange','grape'];
const mergedArray=fruits1.concat(fruits2);
console.log(mergedArray);//输出['apple','banana','orange','grape']
slice(startIndex[, endIndex])
:从原始数组中提取指定范围的元素,返回一个新的数组。startIndex
是起始索引,endIndex
是可选参数,表示结束索引(不包含在提取的结果中)。
let arr = ['apple', 'banana', 'orange', 'grape'];
let slicedArray = arr.slice(1, 3);
console.log(slicedArray); // 输出 ['banana', 'orange']
splice(startIndex, deleteCount, item1, item2, ...)
:从数组中删除或插入元素,并返回被删除的元素组成的数组。startIndex
是起始索引,deleteCount
是要删除的元素数量,可选参数 item1
, item2
, ... 是要插入到数组中的新元素。
let arr = ['apple', 'banana', 'orange'];
let removedElements = arr.splice(1, 1); // 从索引为 1 的位置开始删除一个元素
console.log(arr); // 输出 ['apple', 'orange']
console.log(removedElements); // 输出 ['banana']
map(callback)
:对数组中每个元素执行回调函数,并返回一个新数组,新数组包含回调函数返回值。
let numbers = [1, 2, 3];
let doubledNumbers = numbers.map(function(num) {
return num * 2;
});
console.log(doubledNumbers); // 输出 [2,4 ,6]
filter(callback)
:对每个数组元素执行回调函数并根据回调函数的返回值筛选出符合条件的所有项组成一个新数组并返回。
let numbers = [10 ,20 ,30 ,40];
let filteredNumbers=numbers.filter(function(num) {
return num >25;
});
console.log(filteredNumbers);//输出[30 ,40]
findIndex(callback)
:根据给定条件查找符合条件第一个项在原始列表中所在位置(索引),如果找不到则返回-1。
let fruits= ['apple','banana','orange'];
let index=fruits.findIndex(function(fruit){
return fruit==='banana';
});
console.log(index);//输出1
forEach(callback)
:对数组中的每个元素执行回调函数,没有返回值。
let numbers = [1, 2, 3];
numbers.forEach(function(num) {
console.log(num);
});
// 输出:
// 1
// 2
// 3
every(callback)
:对数组中的每个元素执行回调函数,如果所有元素都满足条件,则返回 true
;否则返回 false
。
let numbers = [10, 20, 30];
let allGreaterThanFive = numbers.every(function(num) {
return num >5;
});
console.log(allGreaterThanFive); // 输出 true
let mixedNumbers = [10 ,20 ,30 ,40];
let allGreaterThanFifty= mixedNumbers.every(function(num){
return num >50;
});
console.log(allGreaterThanFifty);//输出false
some(callback)
:对数组中的每个元素执行回调函数,如果至少有一个元素满足条件,则返回 true
;否则返回 false
。
let numbers=[10 ,20 ,-5 ,-40];
let hasNegativeNumber=numbers.some(function (num){
return num<0;
});
console.log(hasNegativeNumber);//输出true
let positiveNumbers=[10,20,-5,-40]
let hasPositiveNumber=positiveNumbers.some (function (num){
return num>0;
});
console.log(hasPositiveNumber);//输出 true
reduce(callback [, initialValue]):将数组中的所有值从左到右(从索引0到索引length-1)进行累积计算,并将结果返回。callback
函数接收四个参数:累积值(或初始值),当前元素值,当前元素索引和数组本身。可选的 initialValue
参数用于指定初始累积值。
let numbers = [1, 2, 3, 4];
let sum = numbers.reduce(function(acc, num) {
return acc + num;
}, 0);
console.log(sum); // 输出10
let strings=['Hello',' ','World','!'];
let combinedString=strings.reduce(function(acc,str){
return acc+str;
},'');
console.log(combinedString);//输出 'Hello World!'
网友评论