JavaScript中数组,内置对象的常用方法

join()——将数组中的所有元素转化为字符串并连接在一起,返回最后生成的字符串。不修改原始数组

let a = [1, 2, 3];
a.join();               // => "1,2,3",默认使用","隔开元素
a.join("&");            // => "1&2&3",指定分隔符

reverse()——将数组中的元素逆序,返回逆序后的数组。修改原始数组

let a = [1, 2, 3];
a.reverse().join();     // => "3,2,1",此时的a是[3, 2, 1]

sort()——将数组元素进行排序,返回排序后的数组。(默认以字母表顺序排序。修改原始数组

let a = new Array("banana", "cherrry", "apple");
a.sort();
let s = a.join(", ");   // => "apple, banana, cherrry"

concat()——创建并返回一个新数组。不修改原始数组

let a = [1,2,3];
a.concat(4, 5);         // 返回[1,2,3,4,5]
a.concat([4,5]);        // 返回[1,2,3,4,5]
a.concat([4,5],[6,7]);  // 返回[1,2,3,4,5,6,7]
a.concat(4, [5, [6,7]]);// 返回[1,2,3,4,5,[6,7]]
a.join();               // "1,2,3",原始值不发生改变

slice()——对数组进行分离,并返回一个子数组。不修改原始数组

  • 第1个参数表示起始索引
  • 第2个参数表示结束索引(返回数组不包含结束索引对应的元素值)
    如果没有第2个参数,则表示取值到最后一个索引。正值表示正向索引,负值表示反向索引
let a = [1,2,3,4,5];
a.slice(0, 3);          // 返回[1,2,3]
a.slice(3);             // 返回[4,5]
a.slice(-3, -1);        // 返回[3,4],反向索引,从倒数第3个到倒数第1个元素

splice()——从数组中删除和插入一些元素。修改原始数组

  • 前2个参数指定了要删除的数组元素
    • 第1个参数表示需要删除元素的起始索引值
    • 第2个参数表示需要删除的个数
      如果省略则表示删除起始索引后的所有元素
  • 后面的参数指定需要插入的元素
let a = [1,2,3,4,5,6,7,8];
a.splice(4);                // 返回[5,6,7,8],a是[1,2,3,4]
a.splice(1,2);              // 返回[2,3],a是[1,4]
a.splice(1,1);              // 返回[4],a是[1]

let b = [1,2,3,4,5];
a.splice(2,0, "a", "b");    // 返回[],a是[1,2, "a","b", 3,4,5]
a.splice(2,2, [1,2], 3);    // 返回["a", "b"],a是[1,2, [1,2],3, 3,4,5]

push()——在数组的尾部添加一个或多个元素,并返回数组新的长度,修改原始数组
pop()——在数组的尾部删除一个元素,并返回弹出的元素值,修改原始数组

let stack = [];
stack.push(1,2);    // stack:[1,2],返回2
stack.push([1,2]);  // stack:[1,2, [1,2]],返回3
stack.pop();        // stack:[1,2],返回[1,2]

unshift()——在数组的头部添加,返回新的数组长度,修改原始数组
shift()——在数组的头部删除,返回删除的数组元素,修改原始数组

let a = [1];
a.unshift(2);           // a:[2, 1],返回2
a.unshift(3, [4,5]);    // a:[3, [4,5], 2,1],返回4。 
a.shift();              // a:[[4,5], 2, 1],返回3

toString()——返回一个字符串

[1,2,3].toString();         // "1,2,3"
[1, [2, "c"]].toString();   // "1,2,c"

forEach()——方法从头至尾遍历数组,为每个元素调用指定的函数

  • forEach()没有像for循环中使用的相应的break语句,如果要提前终止,可以做放到try/catch中处理
let data = [1,2,3,4,5];
let sum  = 0;
data.forEach(function(value) { sum += value;} );
sum;         // => 15

map()——方法为数组的每个元素调用指定的函数,并返回一个新数组

  • 注意:map()返回的是新数组,它不修改原始数组
a = [1,2,3];
b = a.map(function(x) {return x*x; });  // b是[1,4,9]

filter()——方法为数组的每个元素调用指定的函数,并返回筛选出的新数组

a = [5,4,3,2,1];
smallvalues = a.filter(function(x) { return x < 3; });  
// smallvalues是[2, 1]

every()——方法为数组的每个元素调用指定的函数,并返回true或false。当有一个调用返回false时,every()就会返回false;只有当所有调用都是true时,every()才返回true

some()——方法为数组的每个元素调用指定的函数,并返回true或false。当有一个调用返回true时,some()就会返回true;只有当所有调用都是false时,some()才返回false

let a = [1,2,3,4,5];
a.every(function(x) { return x < 10; });    // => true,所有的值<10
a.every(function(x) { return x % 2 === 0}); // => false,不是所有的值都是偶数
a.some(function(x) { return x % 2 === 0; }) // => true,a含有偶数值

reduce()——对数组的元素对调用指定的函数,并返回最终生成的单个值

  • 第1个参数指定调用的函数
  • 第2个参数为可选参数,指定传递给函数的初始值,当不指定值时,使用数组的第1个元素作为初始值
let a   = [1,2,3,4,5];
let sum = a.reduce(function(x,y) { return x+y; }, 0);       //15
let max = a.reduce(function(x,y) { return (x>y)?x:y; });    // 5

indexOf()——搜索整个数组中给定值的元素,返回找到的第1个元素的索引,如果找不到,则返回-1

  • 第1个参数为需要搜索的值
  • 第2个参数是可选的,指定开始搜索的索引位置
let a = [0,1,2,1,0];
a.indexOf(1);           // =>1: a[1] = 1
a.lastIndexOf(1);       // =>3: a[3] = 1
a.indexOf(3);           // =>-1: a中没有值为3的元素

Array.isArray()——判断一个对象是否是数组

Array.isArray([]);      // true
Array.isArray({});      // false

内置对象 —— **String、Math、Array **

  • String 的内置方法

  • charAt(n) —— 返回该字符串第 n 位的单个字符。(从 0 开始计数)

  • charCodeAt(n) —— 返回该字符串第 n 位的单个字符的 ASCII 码

  • lastIndexOf() —— 跟 indexOf() 相似(不过是从后边开始找)

  • split —— 将字符串按照指定的分隔符分离开,返回一个数组

  • substring(n,m) —— 返回原字符串从 n 位置到 m 位置的子串

  • substr(n,x) —— 返回原字符串从 n 位置开始,长度为 x 的子串

  • toLowerCase() —— 返回把原字符串所有大写字母都变成小写的字符串

  • toUpperCase() —— 返回把原字符串所有小写字母都变成大写的字符串

  • indexOf() —— 返回查找到的位置
    用法:string_1.indexOf(string_2,n); 从字符串 string_1 的第 n 位开始搜索,查找 string_2,返回查找到的位置,未找到,返回 -1 ( n 可以不填,默认从第 0 位开始查找)

  • Math 的内置方法

  • abs(x) —— 返回 x 的绝对值

  • round(x) —— 返回 x 四舍五入后的值

  • sqrt(x) —— 返回 x 的平方根

  • ceil(x) —— 返回大于等于 x 的最小整数

  • floor(x) —— 返回小于等于 x 的最大整数

  • max(a, b) —— 返回 a, b 中较大的数

  • min(a, b) —— 返回 a, b 中较小的数

  • random() —— 返回大于 0 小于 1 的一个随机数

  • Math 不常用的内置方法

  • sin(x) —— 返回 x 的正弦

  • cos(x) —— 返回 x 的余弦

  • tan(x) —— 返回 x 的正切

  • acos(x) —— 返回 x 的反余弦值(余弦值等于 x 的角度),用弧度表示

  • asin(x) —— 返回 x 的反正弦值

  • atan(x) —— 返回 x 的反正切值

  • exp(x) —— 返回 e 的 x 次幂 (e^x)

  • pow(n, m) —— 返回 n 的 m 次幂 (nm)

  • log(x) —— 返回 x 的自然对数 (ln x)

  • Array 的内置方法

  • join("指定分隔符") —— 返回一个字符串,把数组元素串起来,元素间用指定分隔符隔开

  • toString() —— 把数组转为字符串,并返回结果

  • reverse() —— 使数组元素倒序

  • slice(n,m) —— 返回子数组,从数组第 n 个元素到第 m 个元素

  • sort(SortFunction) —— 按照指定的 SortFunction 将数组的元素排序

  • concat(Array_1,Array_2) —— 用于连接两个或多个数组

相关文章推荐:
对象
Javascript数组操作
JavaScript数组(ES6)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,040评论 0 6
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,196评论 0 4
  • 此时的望京商务中心依然灯火辉煌, 但是没有三里屯的灯红酒绿, 没有后海酒吧的流连忘返, 没有世贸天阶的车水马龙, ...
    众心无相阅读 182评论 0 4
  • 开始要记录自己的生活了。 今天给学生们上了作文课,整整用了三节课时间才把细节描写讲完。不得不佩服学生的想象力啊。 ...
    囚鸟Emos阅读 152评论 0 1
  • 这样的人应该很讨喜。能写一手好字,心灵和外貌都是干干净净的,有着自己的想法,坚定又温柔地在世间行走。 我的身边就有...
    南风尚存阅读 225评论 1 1