JavaScript常用数组操作方法

push() 往数组末尾添加任意多个元素

var arr = ['1', '2'];
arr.push('3');
console.log(arr);  // ["1", "2", "3"]

unshift() 往数组开头添加任意多个元素

var arr = ['1', '2'];
arr.unshift('-1', '0');
console.log(arr);  // ["-1", "0", "1", "2"]

pop() 删除数组的最后一个元素并返回删除的元素

var arr = ["-1", "0", "1", "2"];
arr.pop();
console.log(arr);  // ["-1", "0", "1"]

shift() 删除数组第一个元素

var arr = ["-1", "0", "1", "2"];
arr.shift();
console.log(arr);  // ["0", "1", "2"]

splice() 通过指定位置索引,删除相应位置和数量的元素。第一个参数是删除或插入的元素的索引值,第二个参数是删除元素的个数,第三个参数往后就是要添加的元素。

var arr = ["Banana", "Orange", "Apple", "Mango"];
arr.splice(2, 0, "Lemon", "Kiwi");
// arr.splice(2, 0); // ["Banana", "Orange", "Apple", "Mango"]
// arr.splice(2, 1);  // ["Banana", "Orange", "Mango"]
console.log(arr);  // ["Banana", "Orange", "Lemon", "Kiwi", "Apple", "Mango"]

concat 连接两个或多个数组,并返回结果。

var str1 = "Hello ";
var str2 = "world!";
var n = str1.concat(str2);
console.log(n); // Hello world!
var a = [1, 2, 3];
console.log(a.concat(4,5));  // [1, 2, 3, 4, 5]

every() 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true;否则返回false

every() 不会对空数组进行检测。every() 不会改变原始数组。

var ages = [32, 33, 16, 40];
function checkAdult(age) {
    return age >= 18;
}
console.log(ages.every(checkAdult));  // false

filter() 对数组的每一项运行给定的函数,返回函数会返回true的项组成的数组

var ages = [32, 33, 16, 40];
function checkAdult(age) {
    return age >= 18;
}
console.log(ages.filter(checkAdult));  //[32, 33, 40]

forEach() 对数组的每一项运行给的函数,没有返回值

var  arr = [32, 33, 16, 40];
arr.forEach(item => {
console.log(item);  // 打印各个项
})

join() 将所有的数组元素连接成一个字符,元素是通过指定的分隔符进行分隔的

var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.join()); // Banana,Orange,Apple,Mango
console.log(fruits.join()); // Banana-Orange-Apple-Mango

indexOf() 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1。

var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
var m=str.indexOf("6");
console.log(n);  // 13
console.log(m);  // -1

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。

var str="I am from runoob,welcome to runoob site.";
var n=str.lastIndexOf("runoob");
console.log(n);  // 28

map() 对数组中的每一项运行给定的函数,返回每次函数调用的结果组成数组。

map() 不会对空数组进行检测,不会改变原始数组。

var numbers = [4, 9, 16, 25];
numbers.map(Math.sqrt);  // [2, 3, 4, 5]

reverse() 颠倒数组中的元素的顺序

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();  // ["Mango", "Apple", "Orange", "Banana"]

some() 对数组中的每一项运行给定的函数,如果任一项返回true,则返回true

var ages = [3, 10, 18, 20];
function checkAdult(age) {
    return age >= 18;
}
ages.some(checkAdult);  // true

sort() 按照字母顺序对数组排序,支持传入指定的排序方法的函数作为参数

sort() 会改变原始数组!。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();  // ["Apple", "Banana", "Mango", "Orange"]
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b}); // [1, 5, 10, 25, 40, 100]

toString 将数组作为字符串返回

var num = 15;
var n = num.toString();
console.log(n);  // "15"

valueOf 和toString类似,将数组作为字符串返回

valueOf() 方法返回 Array 对象的原始值。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var v = fruits.valueOf();
console.log(v);  // ["Banana", "Orange", "Apple", "Mango"]

reduce() 计算数组元素相加后的总和

reduce() 可以作为一个高阶函数,用于函数的 compose。
reduce() 对于空数组是不会执行回调函数的。

var numbers = [65, 44, 12, 4];
function getSum(total, num) {
    return total + num;
}
console.log(numbers.reduce(getSum));  // 125

未完待续~~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值