参数:不确定个数,而且类型也不确定,要添加的新元素
返回:新增加后的数组
原有数组改变
例如:
var arr = ["Banana", "Orange", "Apple"];
arr.push("Pear");
console.log(arr)
结果:["Banana", "Orange", "Apple" , "Pear"]
参数:不确定个数,而且类型也不确定,要添加的新元素
返回:新增加后的数组
原有数组改变
例如:
var arr = ["Banana", "Orange", "Apple"];
arr.unshift("Pear");
console.log(arr)
结果:["Pear","Banana", "Orange", "Apple"]
参数:
返回:删除数组的个数
原有数组改变
例如:
var arr = ["Banana", "Orange", "Apple"];
arr.pop();
console.log(arr)
结果:["Banana", "Orange"]
参数:
返回:删除的元素
原有数组改变
例如:
var arr = ["Banana", "Orange", "Apple"];
arr.shift();
console.log(arr)
结果:["Orange", "Apple"]
参数:可以有,可以是一个分隔符,不写默认是(",")
返回分开后的字符串
原有数组不变
例如:
var arr = ["Banana", "Orange", "Apple"];
console.log(arr.join(","))
结果:Banana,Orange,Apple
相当于join()或join(",")
例如:
var arr = ["Banana", "Orange", "Apple"];
console.log(arr.toString())
结果:Banana,Orange,Apple
slice(n,m)从索引n开始截取到索引为m,但不包含m;m不写的话默认截取到最后;n和m都不写,默认是复制一份一模一样的数组
将找到的新数组返回
原有数组不会改变
例如:
var arr = ["Banana", "Orange", "Apple","Pear","watermelon"];
console.log(arr.slice(1,3));
结果:["Orange", "Apple"]
concat()克隆一份新的数组(原有数组不变)等价于slice()或者slice(0)
原有数组不改变
例如:
var arr1 = ["Banana", "Orange"]
var arr2 = ["Apple","Pear","watermelon"]
console.log(arr1.concat(arr2));
结果:["Banana", "Orange", "Apple", "Pear", "watermelon"]
splice(n,m,x) 从索引n开始删除m个元素,返回删除的元素(数组),并且将删除的区域用x代替--->数组的修改替换
如果 m是0的话,相当于没有删除,也就是在数组中的指定区域添加新的元素
返回:删除的项当成新的数组返回
原有数组是改变的
例如:
var arr = ["Banana", "Orange","Apple","Pear","watermelon"]
console.log(arr.splice(2,1,"grape"))
结果: ["Banana", "Orange", "grape", "Pear", "watermelon"]
console.log(arr);//打印出删除的元素
结果:["Apple"]
原有数组改变
例如:
var arr = ["Banana", "Orange","Apple"]
console.log(arr.reverse());
结果:["Apple", "Orange", "Banana"]
原有数组改变
排序后:[1, 5, 10, 25, 40, 100]
例如:
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});
console.log(points)
let arr = [1,2,5];
arr.forEach(function(item,index){
console.log(item);
})// 1 2 5
let arr = [1,3,6];
console.log(arr.map(item => item*2));//[2,6,12]
如果回调函数返回true,则将次成员过滤出来,放到返回值中;如果为false,不需要放进返回值中
let arr = [100,55,67,88,99,10];
let res = arr.filter(item => item>60);
console.log(res);//[100, 67, 88, 99]
查找满足条件第一项值,如果找到这个值直接终止find函数,如果找不到满足条件的项,则返回undefined[找true]
let arr = [100,55,66,30,40,25];
let res = arr.find(item => item>99);
console.log(res);//100
let res1 = arr.find(item => item>200);
console.log(res1);//undefined
返回值boolean,当回调函数都返回true,则every这个方法返回true;如果有一个是false,那么整体结果就是false,只要返回false,every就不需要在循环向下执行了【找false】
let arr = [1,2,3,4,5];
let res = arr.every(item => item>5);
console.log(res);//false
返回一个布尔值 只要回调函数有一个返回true,那么some返回值就是true,当所有的都不满足条件,结果返回false;
let arr = [50,30,55,70]
let a = arr.some(item => item>50);
console.log(a);//true
包含 检测数组是否包含某一项:如果包含返回true,不包含返回false
let arr = [1, 2, 3, 4, 56, 7];
console.log(arr.includes(2));//true
收敛,求和 prev:代表除第一次循环外,代表上一次回调函数的返回值;第一次prev代表第一项;
let arr = [1, 2, 3, 4, 5];
arr.reduce((prev, next) => {
console.log(prev + next);
return prev + next;
});//15
let arr = [{price: 2, count: 10, name: "面筋"}, {price: 1, count: 5, name: "烤肠"}, {
price: 3, count: 8, name: "鸡翅"}, {price: 3, count: 6, name: "啤酒"}];
arr.reduce((prev,next)=>{
return prev + next.price * next.count;
},0)//67
JavaScript获取数组中的最大值和最小值:方法一:传统循环遍历,方法二:利用Math.max和Math.min,方式三.利用sort排序...
js数组扁平化就是指将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。 JavaScript方法包括 递归、es5 Array 的reduce函数用法、toString方法、ES6扩展运算符...
JavaScript实现普通数组去重,讲解各种算法的思想和改进方法,已经他们的优缺点...利用数组的reduce方法,使用了filter方法,利用ES6去重,相对来说更为简单
如何快速的创建一个包含100个元素的数组, 最初见到的问题是如何创建100个为元素为0 的数组,研究了一系列的方法,包含Es6 新的API ,不得不说, ES6 好强大!
javascript创建数组的几种方式:1、字面量形式直接创建数组,2、Array构造函数创建数组。js数组常用的方法有哪些:join(),push()和pop(),shift() 和 unshift(),sort(),reverse(),concat()等
every、some、filter、map这几个方法有时候总是傻傻分不清,尤其map,总是一下子有点懵逼记不清和其他方法的区别,每次都需要查一下API,他们的相同点都是需要遍历数组中的每一项,重点是他们的区别.
从非数组对象转数组方法:Array.prototype.slice.call(obj、Array.from(obj)、[…obj]、Object.values(obj)等
这篇文章主要介绍了JS实现遍历不规则多维数组的方法,涉及javascript数组递归遍历相关实现与使用技巧,需要的朋友可以参考下
数组总共有22种方法,本文将其分为对象继承方法、数组转换方法、栈和队列方法、数组排序方法、数组拼接方法、创建子数组方法、数组删改方法、数组位置方法、数组归并方法和数组迭代方法共10类来进行详细介绍
在前端开发中,相信大家都遇到过数组和字符串相互转换的情况 ,JavaScript提供了split()和join()这2个函数来进行转换,下面就介绍数组对象和字符串的相互转换。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!