js数组方法(1)

结果

Banana,Orange,Apple,Mango

🧡join()


join() 方法也可将所有数组元素结合为一个字符串。

它的行为类似 toString(),但是您还可以规定分隔符:

实例

var fruits = [“Banana”, “Orange”,“Apple”, “Mango”];

document.getElementById(“demo”).innerHTML = fruits.join(" * ");

结果

Banana * Orange * Apple * Mango

pop()、push()


pop() 方法从数组中删除最后一个元素

pop() 方法返回“被弹出”的值

push() 方法(在数组结尾处)向数组添加一个新的元素

push() 方法返回新数组的长度

shift()、unshift()


shift() 方法会删除首个数组元素,并把所有其他元素“位移”到更低的索引

shift() 方法返回被“位移出”的字符串

unshift() 方法(在开头)向数组添加新元素,并“反向位移”旧元素

unshift() 方法返回新数组的长度

🧡splice()


拼接数组

splice() 方法可用于向数组添加新项:

实例

var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];

fruits.splice(2, 0, “Lemon”, “Kiwi”);

第一个参数(2)定义了应添加新元素的位置(拼接)。

第二个参数(0)定义应删除多少元素。

其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。

splice() 方法返回一个包含已删除项的数组:

实例

var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];

fruits.splice(2, 2, “Lemon”, “Kiwi”);

sort()


sort() 方法以字母顺序对数组进行排序:

实例

var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];

fruits.sort(); //[‘Apple’, ‘Banana’, ‘Mango’, ‘Orange’]// 对 fruits 中的元素进行排序

reverse()


reverse() 方法反转数组中的元素。

您可以使用它以降序对数组进行排序:

实例

var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];

fruits.sort(); // 对 fruits 中的元素进行排序

fruits.reverse(); // 反转元素顺序

数字排序


默认地,sort() 函数按照_字符串_顺序对值进行排序。

该函数很适合字符串(“Apple” 会排在 “Banana” 之前)。

不过,如果数字按照字符串来排序,则 “25” 大于 “100”,因为 “2” 大于 “1”。

正因如此,sort() 方法在对数值排序时会产生不正确的结果。

我们通过一个_比值函数_来修正此问题:

实例

var points = [40, 100, 1, 5, 25, 10];

points.sort(function(a, b){return a - b});

使用相同的技巧对数组进行降序排序:

实例

var points = [40, 100, 1, 5, 25, 10];

points.sort(function(a, b){return b - a});

比值函数

还可以排序对象数组

比较函数的目的是定义另一种排序顺序。

比较函数应该返回一个负,零或正值,这取决于参数:

function(a, b){return a-b}

当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。

通过比值函数就能查找最高(或最低)的数组值:因为排好序了

🤣Math.max()


您可以使用 Math.max.apply 来查找数组中的最高值:

实例

function myArrayMax(arr) {

return Math.max.apply(null, arr);

}

Math.max.apply([1, 2, 3]) 等于 Math.max(1, 2, 3)。

同理 Math.min()

🤣我的 Min / Max JavaScript 方法


最快的解决方法是使用“自制”方法。

此函数遍历数组,用找到的最高值与每个值进行比较:

实例(查找 Max)

function myArrayMax(arr) {

var len = arr.length

var max = -Infinity;

while (len–) {

if (arr[len] > max) {

max = arr[len];

}

}

return max;

}

🤣以随机顺序排序数组


实例

var points = [40, 100, 1, 5, 25, 10];

points.sort(function(a, b){return 0.5 - Math.random()});

forEach()


该函数接受 3 个参数:

  • 项目值

  • 项目索引

  • 数组本身

map()


参数同上

map() 方法通过对每个数组元素执行函数来创建新数组。

map() 方法不会对没有值的数组元素执行函数。

map() 方法不会更改原始数组。

.filter()


参数同上

filter() 方法创建一个包含通过测试的数组元素的新数组。

🤣🤣🤣reduce()


reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。

reduce() 方法在数组中从左到右工作。另请参阅 reduceRight()。

reduce() 方法不会减少原始数组。

这个例子确定数组中所有数字的总和:

实例

var numbers1 = [45, 4, 9, 16, 25];

var sum = numbers1.reduce(myFunction);

function myFunction(total, value, index, array) {

return total + value;

}

请注意此函数接受 4 个参数:

  • 总数(初始值/先前返回的值)

  • 项目值

  • 项目索引

  • 数组本身

上例并未使用 index 和 array 参数。可以将它改写为:

实例

var numbers1 = [45, 4, 9, 16, 25];

var sum = numbers1.reduce(myFunction);

function myFunction(total, value) {

return total + value;

}

reduce() 方法能够接受一个初始值:

实例

var numbers1 = [45, 4, 9, 16, 25];

var sum = numbers1.reduce(myFunction, 100);

function myFunction(total, value) {

return total + value;

}

reduceRight()


暂未了解

🤣every()


every() 方法检查所有数组值是否通过测试。

这个例子检查所有数组值是否大于 18:

实例

var numbers = [45, 4, 9, 16, 25];

var allOver18 = numbers.every(myFunction);

function myFunction(value, index, array) {

return value > 18;

}

请注意此函数接受 3 个参数:

  • 项目值

  • 项目索引

  • 数组本身

如果回调函数仅使用第一个参数(值)时,可以省略其他参数:

实例

var numbers = [45, 4, 9, 16, 25];

var allOver18 = numbers.every(myFunction);

function myFunction(value) {

return value > 18;

}

🤣some()


some() 方法检查某些数组值是否通过了测试。

这个例子检查某些数组值是否大于 18:

实例

var numbers = [45, 4, 9, 16, 25];

var someOver18 = numbers.some(myFunction);

function myFunction(value, index, array) {

return value > 18;

}

请注意此函数接受 3 个参数:

  • 项目值

  • 项目索引

  • 数组本身

🧡find()


find() 方法返回通过测试函数的第一个数组元素的值。

可用于数组中找对象

这个例子查找(返回)大于 18 的第一个元素的值:

实例

var numbers = [4, 9, 16, 25, 29];

var first = numbers.find(myFunction);

function myFunction(value, index, array) {

return value > 18;

}

请注意此函数接受 3 个参数:

  • 项目值

  • 项目索引

  • 数组本身

findIndex()


findIndex() 方法返回通过测试函数的第一个数组元素的索引。

这个例子查找大于 18 的第一个元素的索引:

实例

var numbers = [4, 9, 16, 25, 29];

var first = numbers.findIndex(myFunction);

function myFunction(value, index, array) {

return value > 18;

}

请注意此函数接受 3 个参数:

  • 项目值

  • 项目索引

  • 数组本身

数组 Const


使用 const 声明数组已成为一种常见做法:

实例

const cars = [“Saab”, “Volvo”, “BMW”];

无法重新赋值

用 const 声明的数组不能重新赋值

🧡元素可以重新赋值

实例

// 您可以创建常量数组:

const cars = [“Saab”, “Volvo”, “BMW”];

// 您可以更改元素:

cars[0] = “Toyota”;

// 您可以添加元素:

cars.push(“Audi”);

const块作用域

用 const 声明的数组具有_块作用域_。

在块中声明的数组与在块外声明的数组不同:

实例

const cars = [“Saab”, “Volvo”, “BMW”];

// 此处 cars[0] 为 “Saab”

{

const cars = [“Toyota”, “Volvo”, “BMW”];

// 此处 cars[0] 为 “Toyota”

}

// 此处 cars[0] 为 “Saab”

const cars = [“Volvo”, “BMW”]; // 允许

{

const cars = [“Volvo”, “BMW”]; // 允许

}

{

const cars = [“Volvo”, “BMW”]; // 允许

}

🧡Array.from()


ES6数组扩展、将伪数组对象或可遍历对象转换为真数组

该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。

该类数组对象的属性名必须为数值型或字符串型的数字

let arrayLike = {

0: ‘tom’,

1: ‘65’,

2: ‘男’,

3: [‘jane’,‘john’,‘Mary’],

‘length’: 4//注意如果这个地方不是‘length’没有‘’、则返回4个undefined的数组

}

let arr = Array.from(arrayLike)

console.log(arr) // [‘tom’,‘65’,‘男’,[‘jane’,‘john’,‘Mary’]]

🧡🧡🧡将Set结构的数据转换为真正的数组:

let arr = [12,45,97,9797,564,134,45642]

let set = new Set(arr)

console.log(Array.from(set)) // [ 12, 45, 97, 9797, 564, 134, 45642 ]

将字符串转换为数组:

let str = ‘hello world!’;//同字符串split方法

console.log(Array.from(str)) // [“h”, “e”, “l”, “l”, “o”, " ", “w”, “o”, “r”, “l”, “d”, “!”]

**🧡🧡🧡Array.from参数是一个真正的数组:**浅拷贝、因为引用类型改变还是会互相影响

let a = [1,2,3,{

c:4

}];

let b = Array.from(a)//Array.from会返回一个一模一样的新数组。

a===b//false

fill()


ES6为Array增加了fill()函数,使用制定的元素填充数组,其实就是用默认内容初始化数组。

参数:

  • arr.fill(value, start, end)

  • value:填充的值

  • start: 开始的下标值

  • end:结束的下标值

//传递三个参数

let a = [1,2,3,4,5]

let b = a.fill(6,1,4)

console.log(b) //[1, 6, 6, 6, 5]

//传递两个参数,那么最后一个值就是到数组的末尾

let a = [1,2,3,4,5]

let b = a.fill(6,1)

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
会返回一个一模一样的新数组。

a===b//false

fill()


ES6为Array增加了fill()函数,使用制定的元素填充数组,其实就是用默认内容初始化数组。

参数:

  • arr.fill(value, start, end)

  • value:填充的值

  • start: 开始的下标值

  • end:结束的下标值

//传递三个参数

let a = [1,2,3,4,5]

let b = a.fill(6,1,4)

console.log(b) //[1, 6, 6, 6, 5]

//传递两个参数,那么最后一个值就是到数组的末尾

let a = [1,2,3,4,5]

let b = a.fill(6,1)

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-32yxI99c-1715546559060)]

[外链图片转存中…(img-QLXsMoij-1715546559060)]

[外链图片转存中…(img-VWKZpdzr-1715546559061)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值