数组

JS-数组

方法:

  1. Array.isArray(obj) : 判断对象是否是Array,是返回true,不是返回false

  2. Array.from(obj) :将类数组对象转换成数组以及可遍历(iterable)转换成数组(生成新数组)
    例如:var obj = { ‘0’: ‘a’, ‘1’: ‘b’, length : 2 } let array = Array.from(obj) // [a, b]
    例如:NodeList对象,arguments对象

  3. Array.of(obj) : 将一组值转换成数组 例如:Array.of(1,2,3,4) // [1,2,3,4]
    IE 浏览器不支持 Array.of(7) // [7]
    Array(3) [, , ,]
    兼容旧环境: if (!Array.of) {
    Array.of = function() { return Array.prototype.slice.call(arguments);};
    }

属性:

  1. Array.prototype.length;数组长度

  2. Prototype 返回对象类型的原型引用,可以添加新方法和属性以扩展所有Array对象;

  3. Array.prototype.constructor 所有数组实例都继承了这个值,值为Array;

实例方法:
一、 转换方法
Array.join(‘,’) : 数组或类数组转换成字符串并返回字符串,对于undefind和null则返回空字符串,默认用,分割

二、首尾添加方法: 原数组改变

  1. Array.push(e1,e2) : 向数组尾部添加元素,返回数组的新长度;
  2. Array.prototype.push.apply(arr1, arr2) : 改变了arr1,将arr2合并到arr1;
  3. 操作对象
    var obj = {
    length: 0,
    addElem: function addElem (elem) { [].push.call(this, elem);}
    }
    obj.addElem({}); console.log(obj.length); // → 2
  4. unshift**() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度。

三、 首尾删除方法: 原数组改变

  1. pop(): 从数组中删除最后一个元素,并返回该元素的值,数组为空返回undefined
  2. shift() 方法从数组中删除第一个元素,并返回该元素的值。数组为空返回undefined。

四、 重排序方法:改变原数组

  1. reverse() 方法将数组中元素的位置颠倒,并返回该数组
  2. sort() 方法对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点
    数字数组排序 : numbers.sort((a, b) => a - b);

五、操作方法:

  1. concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
  2. slice() 方法返回一个新的数组对象,原数组的浅拷贝。原始数组不会被改变。
    如果数组内元素是对象:新数组的操作会影响原数组,
    如果数组内元素是字符串,数字,布尔值的话,将不会影响原数组
  3. splice(start,number, replaceObj) 方法通过删除或替换现有元素来修改数组,并以数组形式返
    回被修改的内容。此方法会改变原数组
  4. copyWithin() 方法浅复制数组的一部分到同一数组中的另一个位置,并返回改变后的数组,而不修改其大小,原数组改变
  5. fill(value, start,end) 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
    原数组改变 var arr = Array(3).fill({}) // [{}, {}, {}]; arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]

六、位置方法

  1. indexOf(searchElemet, formIndex)方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
  2. lastIndexOf(searchElement, fromIndex) 方法返回指定元素在数组中的最后一个的索引,不存在返回 -1。从 fromIndex 处开始从数组的后面向前查找
  3. includes(valueToFind, fromIndex) 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false

七、迭代方法

  1. every() 方法测试数组的所有元素是否都通过 通过返回true。
  2. some() 方法测试是否至少有一个元素通过,通过返回true。
  3. filter() 方法对数组中每一项都运行给定函数,返回该函数会返回true的所有项
  4. forEach() 对数组每一项都运行指定函数,没有返回值
  5. map() 对数组每一项都运行指定函数返回每次函数调用组成的数组
  6. find() 对数组所有成员执行指定的callback函数,找到第一个返回值为true的成员,并返回该成员,不符合条件返回undefined
  7. findIndex() 对数组所有成员执行指定的callback函数,找到第一个返回值为true的成员,并返回该成员的索引值,不符合条件的返回-1
  8. entries()对数组所有成员执行指定的callback函数,找到第一个返回值为true的成员,并返回该成员
  9. keys()方法返回一个包含数组中每个索引键的Array Iterator对象。
  10. values() 方法返回一个新的Array Iterator对象,该对象包含数组每个索引的值

八、归并方法

  1. reduce(函数,initialValue) 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。

2.reduceRight() 方法接受一个函数作为累加器(accumulator)和数组的每个值(从右到左)将其减少为单个值。

九、扁平化方法:改变原数组

  1. flat(num) 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中元素合并为一个新数组返回
    flat() 会移出数组空项
    flat(Infinity) 可以扁平化任意维度的数组
    兼容性:IE系列都不兼容

  2. flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组

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