ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
~~~ <script> /* * 获取数组中指定项的索引 * indexOf([item]):获取当前项在数组中第一次出现位置的索引 * lastIndexOf([item]) :获取当前项在数组中最后一次出现位置的索引 * includes:验证数组中是否包含这一项,返回TRUE/FALSE * 原始数组不变 */ // let arr = [10, 20, 30, 10, 20, 10, 30]; // console.log(arr.indexOf(20)); //=>1 // console.log(arr.lastIndexOf(20)); //=>4 // console.log(arr.indexOf(40)); //=>-1 如果数组中不包含这一项,则返回结果是-1 // =>基于这个特征来验证数组中是否包含某一项 // if (arr.indexOf(40) > -1) { // // 数组中包含这一项 // } // console.log(arr.includes(40)); </script> <script> /* * reverse:把原始数组倒过来排列,返回的结果是排列后的原始数组,原始数组改变 * * sort:把原始数组按照规则进行排序,原始数组会改变(返回结果也是改变后的原始数组) * SORT支持传递回调函数,基于自定义的排序规则,进行排序的 */ // let arr = [4, 3, 2, 5, 1]; // arr.reverse(); // console.log(arr); ~~~ ![](https://img.kancloud.cn/ef/9f/ef9f018ceeb41f811deccfcc72f154e8_408x109.png) ~~~ // arr.sort(); //=>默认按照由小到大排序 // console.log(arr); //=>[1,2,3,4,5] // let arr = [12, 23, 110, 34, 2, 4, 9]; // arr.sort(); //=>SORT排序,默认不就是按照每一项的数值大小排序,而是按照每一项的每一个字符编码来进行比较排序的,所以导致直接写SORT,不能处理两位及两位以上的内容排序 // console.log(arr); //=>[110, 12, 2, 23, 34, 4, 9] // let arr = [12, 23, 110, 34, 2, 4, 9]; // arr.sort(function (a, b) { // // => RETURN A-B 升序,B-A 降序 // return b - a; // }); // console.log(arr); //=>[2, 4, 9, 12, 23, 34, 110] </script> ~~~ ![](https://img.kancloud.cn/8c/5e/8c5ea15950e677712e895c55f1b7b35c_340x108.png) ~~~ <script> /* * 数组中常用的迭代方法(遍历数组中每一项的) * forEach([函数]):遍历数组中的每一项(数组中有多少项,函数会相继被执行多少次),每一次执行函数,都可以在函数中获取到当前遍历的这一项和对应的索引 * map:forEach是不支持返回值的,而map可以在forEach的基础上支持返回值,把原来数组中每一项的值替换成为新值,最后存储在一个新的数组中,但是原始数组是不变的 * * 后面再学习的迭代方法:find / filter / every / some / reduce ... */ // let arr = [10, 20, 30, 40, 50]; // ===========数组就和的方式 // console.log(eval(arr.join('+'))); 如果数组中出现非有效数字,则最后结果是NaN /* let total = 0; arr.forEach(function (item, index) { item = Number(item); if (isNaN(item) === false) { total += item; } }); console.log(total); */ /* arr.forEach(function (item, index) { // 此函数会被循环执行五次(数组中有5项) // item:当前遍历这一项的内容 // index:当前项的索引 console.log(item, index); }); */ // MAP支持返回值,但是不会改变原来的数组,执行完的返回结果是修改后的新数组 /* let arr = [10, 20, 30, 40, 50]; let result = arr.map(function (item, index) { // 数组中有5项,此函数被循环执行了5次 // item:当前循环这一次的值 // index:当前值对应的索引 // 函数中返回啥,都是把数组中当前项替换成啥 return item * 10; }); console.log(result); */ </script> ~~~ ![](https://img.kancloud.cn/72/24/72247f354efd30db57a35ba6cfd20eaf_572x223.png) ![](https://img.kancloud.cn/2d/06/2d061bc7bf7f77c4e88d41cf5f6c59d5_387x73.png) ![](https://img.kancloud.cn/47/b1/47b1d50a0da138331ef7e447b07caeb0_502x211.png) ![](https://img.kancloud.cn/66/97/6697660f7988ff87d9650e5f7346eeb8_1575x483.png) ![](https://img.kancloud.cn/59/a4/59a49c8760e1d8410cf565eab697bb34_1575x550.png) ![](https://img.kancloud.cn/f2/2b/f22bc553c1a100c9a1457711a9918b7f_1577x72.png) ![](https://img.kancloud.cn/65/c8/65c87aaaf7ba7262b4c38e3dedf6b0f4_1576x500.png) ![](https://img.kancloud.cn/2d/d0/2dd0be52c1f3d1c8f205e5a03a89e3c0_1578x212.png)