JS数组方法包含ES6新增方法

concat(array, ..., arrayN):连接两个或多个数组,并返回新的数组。

var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale,kai);
// Cecilie,Lone,Emil,Tobias,Linus,Robin

 

slice(start(负数是倒数), end(负数是倒数)):选取数组的一部分,并返回。

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3); // Orange,Lemon

 

splice(start, 删除多少个元素, 要添加的元素):添加、删除或替换数组元素,返回删除元素组成的数组,没有删除则返回空数组。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi"); // Banana,Orange,Lemon,Kiwi,Apple,Mango

 


 

copyWithin(替换位置, 起始位置, 停止位置(负值表示倒数)):从数组的指定位置复制元素到数组的另一个位置。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.copyWithin(2, 0);
// Banana,Orange,Banana,Orange
var fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi", "Papaya"];
fruits.copyWithin(2, 0, 2);
// Banana,Orange,Banana,Orange,Kiwi,Papaya

 


 

entries():返回一个包含数组键值对的迭代对象。

for (let [index, elem] of ['a', 'b'].entries()) {
  console.log(index, elem);
}
// 0 "a"
// 1 "b"

 

keys():返回一个包含数组键名的迭代对象。

for (let index of ['a', 'b'].keys()) {
  console.log(index);
}
// 0
// 1

 

values():返回一个包含数组键值得迭代对象。

for (let elem of ['a', 'b'].values()) {
  console.log(elem);
}
// 'a'
// 'b'

 


 

every(function(currentValue, index, arr), thisValue):对数组中的每一项运行给定函数,如果函数对每一项都返回true,则返回true。

var ages = [32, 33, 16, 40];
ages.every(function checkAdult(age) {
    return age >= 18;
}); // false

 

filter(function(currentValue,index,arr), thisValue):对数组中的每一项运行给定函数,返回函数会返回true的项组成的数组。

var ages = [32, 33, 16, 40];
ages.filter(function checkAdult(age) {
    return age >= 18;
}); // 32,33,40

 

forEach(function(currentValue, index, arr), thisValue):对数组中的每一项运行给定函数,没有返回。

var numbers = [4, 9, 16, 25];
numbers.forEach(function myFunction(item, index) {
    console.log(item, index);
})

 

map(function(currentValue,index,arr), thisValue):对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

var numbers = [1, 2, 3, 4, 5];
var mapResult = numbers.map(function(item, index, array) {
    return item * 2;
}); // [2,4,6,8,10]

 

some(function(currentValue,index,arr), thisValue):对数组中的每一项运行给定函数,如果函数对有一项返回true,则返回true。

var someResult = numbers.some(function(item, index, array) {
    return (item > 2);
});
alert(someResult); // true

 

find(function(currentValue, index, arr), thisValue):对数组中的每一项运行给定函数,返回符合条件的第一个数组元素,没有则返回undefined。

var ages = [3, 10, 18, 20];
ages.find(function checkAdult(age) {
    return age >= 18;
}); // 18

 

findIndex(function(currentValue, index, arr), thisValue):对数组中的每一项运行给定函数,返回符合条件的第一个数组元素的位置,没有则返回-1。

var ages = [3, 10, 18, 20];
ages.findIndex(function checkAdult(age) {
    return age >= 18;
}); // 2

 


 

fill(填充元素, 开始位置, 停止位置):使用一个固定值来填充数组。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill("Runoob");
// Runoob,Runoob,Runoob,Runoob
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill("Runoob", 2, 4);
// Banana,Orange,Runoob,Runoob

 


 

from(要转换为数组的对象, mapFunction, thisValue):将类数组对象转换为数组,否则返回空数组。

let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};

// ES5的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']

// ES6的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']

 


 

includes(指定值, 起始位置(负数表示倒数)):判断一个数组是否包含一个指定的值。

[1, 2, 3].includes(2)     // true
[1, 2, 3].includes(4)     // false
[1, 2, NaN].includes(NaN) // true
[1, 2, 3].includes(3, 3);  // false
[1, 2, 3].includes(3, -1); // true

 

indexOf(item):返回数组中指定元素的位置,没有则返回-1。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple"); // 2
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.indexOf("Apple",4); // 6

 

lastIndex(item):返回一个指定元素在数组中最后出现的位置,没有则没有-1。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple"); // 2

 


 

isArray():判断一个对象是否为数组

var fruits = ["Banana", "Orange", "Apple", "Mango"];
Array.isArray(fruits); // true

 


 

join(str):将数组按照分隔符分隔转换为字符串。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(); // Banana,Orange,Apple,Mango

 

toString():把数组转换为字符串并返回。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString(); // Banana,Orange,Apple,Mango

 


 

pop():删除并返回数组的最后一个元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop(); // Mango

 

push():向数组的末尾添加一个或更多元素,并返回新数组的长度。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.push("Kiwi")); // 5

 

shift():删除并返回数组的第一个元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift() // Banana

 

unshift():向数组的开头添加一个或更多元素,并返回新数组的长度。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple"); // Lemon,Pineapple,Banana,Orange,Apple,Mango

 

 


 

reduce(function(total, currentValue, currentIndex, arr), initialValue):将数组元素从左到右计算为一个值。

const arr = [1, 2, 3];
const reduceArray = arr.reduce(function(acc, current) {
    acc.push(current * 2);
    return acc;
}, [])
console.log(reduceArray) // [2, 4, 6];

 

reduceRight(function(total, currentValue, currentIndex, arr), initialValue):将数组元素从右到左计算为一个值。

const arr = [1, 2, 3];
const reduceArray = arr.reduceRight(function(acc, current) {
    acc.push(current * 2);
    return acc;
}, [])
console.log(reduceArray) // [6, 4, 2];

 


 

reverse():反转数组中元素的顺序。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse(); // Mango,Apple,Orange,Banana

 

sort(排序函数):对数组元素进行排序。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort(); // Apple,Banana,Mango,Orange
var values = [0, 1, 5, 10, 15];
values.sort(function compare(value1, value2) {
    if (value1 < value2) {
        return -1;
    } else if (value1 > value2) {
        return 1;
    } else {
        return 0;
    }
});
alert(values); // 0, 1, 5, 10, 15

 


 

valueOf():返回数组对象的原始值。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var v=fruits.valueOf(); // Banana,Orange,Apple,Mango

 


 

concat

slice

splice

copyWithin

entries

keys

values

every

filter

forEach

map

some

find

findIndex

fill

from

includes

indexOf

lastIndex

isArray

join

toString

pop

push

shift

unshift

reduce

reduceRight

reverse

sort

valueOf

 

原文地址:https://www.cnblogs.com/linxian95/p/10444164.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


原文连接:https://www.cnblogs.com/dupd/p/5951311.htmlES6之前已经出现了js模块加载的方案,最主要的是CommonJS和AMD规范。commonjs主要应用于服务器,实现同步加载,如nodejs。AMD规范应用于浏览器,如requirejs,为异步加载。同时还有CMD规范,为同步加载方案如seaJS。ES6在语言规格的层面上,实现了模块功能,而且...
以为Es6,javascript第一次支持了module。ES6的模块化分为导出(export)与导入(import)两个模块,其中在项目中,我们会经常看到一种用法import * as obj from,这种写法是把所有的输出包裹到obj对象里。示例一 1 2 3 4 5 6 7 // index.js export function fn1(data){ console.log(1) } export f.
视频讲解关于异步处理,ES5的回调使我们陷入地狱,ES6的Promise使我们脱离魔障,终于、ES7的async-await带我们走向光明。今天就来学习一下 async-await。async-await和Promise的关系经常会看到有了 async-await、promise 还有必要学习吗、async await优于promise的几个特点,接收了这些信息后,就蒙圈了。现在才知道...
TypeScript什么是TypeScript?TypeScript是由微软开发的一款开源的编程语言TypeScript是JavaScript的超集,遵循最新的ES5 ES6规范,TypeScript扩展了JavaScript的语法TypeScript更像后端 Java c# 这样的面向对象语言可以让js开发大型企业项目谷歌也在大力支持TypeScript的推广,React ,VUE 都集成了TypeScriptTypeScript安装安装-- 安装npm install -g type
export class AppComponent { title = 'Tour of heroes'; hero: Hero = { id: 1, name: '张三' };}export class Hero { id: number; name: string;}就是这一段,看起来有点晕,这里是实例化一个Hero类型的对象hero,还是创建一个变量?后面是赋值,但是不知道什么意思?hero: Hero = { id: 1, na.
用 async/await 来处理异步昨天看了一篇vue的教程,作者用async/ await来发送异步请求,从服务端获取数据,代码很简洁,同时async/await 已经被标准化,是时候学习一下了。先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。 写一个async 函数async function timeout() {return 'hello world'
es6的语法已经出了很长的时间了,在使用上也可以通过babel这类的编译工具转译为浏览器可以识别的es5的语法,但是依旧有很多开发在写代码的时候,依旧没有用es6的语法,而是习惯使用老的语法,这篇文章主要会介绍解构赋值基本用法以及在实际使用场景中相比es5语法的优势,让大家从根本上了解es6语法的优势基本用法数组解构让我们一起先来看数组解构的基本用法:let [a, b, c] ...
参考链接1 参考链接2写法1 - 使用 function 关键字function greeter(fn: (a: string) =&gt; void) { fn("Hello, World");}function printToConsole(s: string) { console.log(s);}greeter(printToConsole);(a: string) =&gt; void上述语法的含义:表示一个函数,接收一个字符串作为输入参数,没有返回参数。可
ES6简介-ECMAScript是javascript标准-ES6就是ECMAScript的第6个版本-ECMAScript6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。ES6新增加的功能:1.let
ES6  在ES5的基础上增加了一些新的特性和写法,特别在函数写法上,增加了箭头函数 1.正经的函数写法//普通的传递值的写法functionsum1(x,y){returnx+y;}constres=sum1(2,3);console.log(res);//传递对象的方式,调用时需要传递一个对象过去function
ES5及ES6es表示ECMASCript,他是从es3,es5,es6,es5是2009.12月发布的,es6是2015.6月发布的。vue2完全支持es5的(vue3完全支持es6的),react完全支持es6es5的新特性严格模式(对应的相反的称为怪异模式)'usestrict'//一般用于相关的设计上面书写一个严格模式底下的代码就需要按照严格模
ES5的严格模式所谓严格模式,从字面上就很好理解,即更严格的模式,在这种模式下执行,浏览器会对JS的要求更苛刻,语法格式要求更细致,更符合逻辑。怪异模式:就是我们之前一直使用的开发模式,就叫怪异模式。因为很多时候出来的结果是非常怪异的,所以才称之为怪异模式。'usestrict'//一般用
相同点export与exportdefault均可用于导出常量、函数、文件、模块可在其它文件或模块中通过import+(常量|函数|文件|模块)名的方式,将其导入,以便能够对其进行使用不同点一、在一个文件或模块中,export、import可以有多个,exportdefault仅有一个//model.jsle
24.class类 25.class中的extend 26.super关键字 27.super应用 28.class属性 30.静态成员和实例成员 31.构造函数问题 32.构造函数原型 33.原型链 34.js查找机制 35.原型对象中this指向 36.扩展内置对象方法 37.call方法 38.借用父构造函数
什么是ES6ES的全称是ECMAScript,它是由ECMA国际标准化组织,制定的一项脚本语言的标准化规范。泛指2015年发布的es2015版极其后续版本ES6中新增语法letES6中新增的用于声明变量的关键字。注意:使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特
命名修饰符let:不能重复声明变量、块级作用域leta=1;leta=2;//报错const:初始化常量,必须给初始值,否则报错、在同一个作用域内,const定义的常量不能修改其值、块级作用域consta=10a=100//报错,不能重复声明解构constobj={name:'jack'age:18sex:'
ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。1{2leta=10;3varb=1;4}56a//ReferenceError:aisnotdefined.7b//1上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatib
一,RegExp构造函数es5中,RegExp构造函数的参数有两种情况。1,参数是字符串,第二个参数表示正则表达式的修饰符(flag)。2,参数是一个正则表达式,返回一个原有正则表达式的拷贝。es6中,如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符。而
一、字符的Unicode表示法JavaScript允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的Unicode码点。表示法只限于码点在\u0000~\uFFFF之间的字符,超过该范围需要用两个双字节表示ES6改进:将码点放入大括号,就能正确解读该字符。转换参考:https://blog.csdn.net/hezh1994/ar