ES6小实验-复习数组

ES6给数组添加了不少方法,我先把之前的方法总结一下:
1.Array.isArray():检测数组

var arr = [‘a‘,‘b‘,‘c‘]
var str = ‘abc‘
console.log(Array.isArray(arr))//true
console.log(Array.isArray(str))//false

2.push():接收任意数量的参数,把它们逐个添加到数组末尾

var arr = [‘a‘,‘b‘,‘c‘]
var item = arr.push(‘d‘,‘e‘)
console.log(item)//5
console.log(arr)//["a", "b", "c", "d", "e"]

3.pop():从数组末尾移除最后一项

var arr = [‘a‘,‘b‘,‘c‘]
var item = arr.pop()
console.log(item)//c
console.log(arr)//["a", "b"]

4.shift():移除数组第一项并返回该项

var arr = [‘a‘,‘b‘,‘c‘]
var item = arr.shift()
console.log(item)//a
console.log(arr)//["b", "c"] 

5.unshift():能在数组前端添加任意个项并返回新数组长度

var arr = [‘a‘,‘b‘,‘c‘]
var item = arr.unshift(‘d‘,‘e‘)
console.log(item)//5
console.log(arr)//["d", "e", "a", "b", "c"]

6.reverse():反转数据项的顺序,注意它已经把原数组改变了

var arr = [2,4,6,3,1]
console.log(arr.reverse())//[1, 3, 6, 4, 2]
console.log(arr)//[1, 3, 6, 4, 2]

7.sort():可以接收一个比较函数作为参数,比较函数接收两个参数,如果第一个参数应该位于第二个参数之前则返回一个负数,两参数相等则返回0,如果第一个参数应该位于第二个参数之后则返回一个正数

var arr = [2,4,6,3,1]
arr.sort(function(a,b) {
    return a - b
})
console.log(arr)//[1, 2, 3, 4, 6]

8.concat():基于当前数组中的所有项创建一个新的数组,感觉字符串的操作方法类似

var arr1 = [‘a‘,‘b‘,‘c‘]
var arr2 = [‘d‘,‘e‘,‘f‘]
var arr = arr1.concat(arr2)
console.log(arr)//["a", "b", "c", "d", "e", "f"]
console.log(arr1)//["a", "b", "c"]

9.slice():截取原数组,构建一个新的数组,原数组保持不变

var arr = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘]
var arr1 = arr.slice(2)
var arr2 = arr.slice(2,3)
console.log(arr1)//["c", "d", "e"]
console.log(arr2)//["c"]

10.splice():这恐怕是最强大的数组方法,增,删,改,操作全能

  (1)增,可以向指定位置插入任意数量的项,只需提供三个参数,起始位置,0(要删除的项数)和要插入的项

var arr = [‘a‘,‘b‘,‘c‘]
arr.splice(1,0,‘d‘,‘e‘)
console.log(arr)//["a", "d", "e", "b", "c"]

  (2)删,提供两个参数,要删除的第一项的位置和要删除的项数

var arr = [‘a‘,‘b‘,‘c‘,‘d‘]
arr.splice(1,2)
console.log(arr)//["a", "d"]

  (3)改,结合上面两种方式,先删再增就是改

var arr = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘]
arr.splice(1,2,‘f‘,‘g‘)
console.log(arr)//["a", "f", "g", "d", "e"]

11.indexOf(),lastIndexOf() 它们都接收两个参数,要查找的项和查找起点位置的索引(可选的),indexOf()从开始向后查找,lastIndexOf从末尾向前查找

var arr = [‘a‘,‘b‘,‘c‘,‘d‘,‘c‘,‘e‘]
console.log(arr.indexOf(‘c‘, 3))//4
console.log(arr.lastIndexOf(‘c‘, 3))//2

12.every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true

var num = [1,2,3,4,5,6]
var everyResult = num.every(function(item, index, array){
    return (item > 0)
})
console.log(everyResult)//true

13.filter():对数组中的每一项运行给定的函数,返回该函数会返回true的项组成的数组

var num = [1,2,3,4,5,6]
var filterResult = num.filter(function(item, index, array){
    return (item > 3)
})
console.log(filterResult)//[4, 5, 6]

14.forEach():对数组中的每一项运行给定的函数,这个方法没有返回值

var num = [1,2,3,4,5,6]
num.forEach(function(item, index, array){
    console.log(item)//1,2,3,4,5,6
})

15.map():对数组中每一项运行给定的函数,返回每次函数调用的结果组成的数组

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

16.some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true

var num = [1,2,3,4,5,6]
var someResult = num.some(function(item, index, array){
    return item > 5
})
console.log(someResult)//true

17.reduce(),reduceRight():迭代数组的所有项,然后构建一个最终返回的值,reduce()从第一项开始,reduceRight()从最后一项开始

var num = [1,2,3,4,5,6]
var reduceResult = num.reduce(function(prev, cur, index, array){
    return prev + cur
})
console.log(reduceResult)//21
时间: 2024-10-29 19:12:02

ES6小实验-复习数组的相关文章

ES6小实验-复习正则表达式

正则表达式总是记不住,这一次参考网上一篇的文章好好复习一遍 正则表达式构造函数(四种写法): var regex = new RegExp('xyz', 'i') var regex = new RegExp(/xyz/i) var regex = /xyz/i // ES6的写法.ES5在第一个参数是正则时,不允许此时使用第二个参数,会报错. // 返回的正则表达式会忽略原有的正则表达式的修饰符,只使用新指定的修饰符. // 下面代码返回”i”. new RegExp(/abc/ig, 'i'

ES6小实验-复习字符串

字符串用的很频繁,而它的方法也比较多,因此有必要好好的总结下. 1.字符串观赏方法 charAt() :访问字符串中的特定字符 var str = "hello world" console.log(str.charAt(1))//e 该方法接收一个参数,即基于0的字符位置, charCodeAt():访问字符串中的特定字符的字符编码 var str = "hello world" console.log(str.charCodeAt(1))//101 该方法和上面

ES6小实验-字符串的扩展

ES6里面的对字符串的扩展实际上就是增加了一些方法,使对字符串的操作更加完善,下面做几个小实验来验证下: includes(): 返回布尔值,表示是否找到了参数字符串,支持第二的参数,表示开始的位置 'use strict'; var s = 'Hello world!'; console.log(s.includes('Hello'));//true startsWith(): 返回布尔值,表示参数字符串是否在源字符串的头部,支持第二的参数,表示开始的位置 'use strict'; var

ES6小实验-let和const(2)

继续小实验,上次写到块级作用域,那么为什么需要块级作用域呢?书中给了两个场景: 1.没有块级作用域,内层变量可能会覆盖外层变量.举例: var tmp = new Date() function f() { console.log(tmp) if(false) { var tmp = "hello world" } } f();//undefined 内层的tmp变量把外层的tmp变量覆盖,所以输出结果为undefined 2.用来计数的循环变量泄露为全局变量,举例: var s =

ES6小实验-数组的扩展

数组方法已经很多,ES6给数组又增加了不少方法: 1.Array.from():用于将两类对象转为真正的数组,类似数组的对象(array-like object) 和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map) let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length:3 } let arr = Array.from(arrayLike) console.log(arr)//["a", "b&q

ES6小实验-函数的扩展

函数参数默认值 ES6允许为函数的参数直接设置默认值,即直接写在参数定义的后面 function log (x, y = "world") { console.log(x, y) } log("Hello")//Hello world 上面代码中,y是默认声明的,参数默认值可以与解构赋值的默认值,结合使用 function log ({x, y = "world"}) { console.log(x, y) } log({x: "Hel

小实验点破数组指针、函数指针

本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/45823027 c语言里的指针函数.函数指针.指针数组都用得比较多,数组指针相对在项目中比较少见. #include <stdio.h> #include <stdlib.h> int main() { char (*a)[5]; char b[8]={'0','1','2','3','4','5','6','7','8','9'}; a

留言本小实验

实验目的: 利用PHP实现发布留言,并存在txt文本文件中,还可以从文本文件中读取留言,并显示在网页上. 实验代码: 先要用个表单提交留言,写一个简单的html如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2 <html xmlns="http://www

es6学习笔记(1)数组(上)

最近公司没什么事情,我们老大让我看看es6,小颖就练习了下数组的各个方法,今天先给大家分享一部分.嘻嘻,希望对大家有所帮助. every方法: 概述:    every() 方法测试数组的所有元素是否都通过了指定函数的测试. 参数: callback:用来测试每个元素的函数; element:当前遍历到的元素. index:当前遍历到的索引. array:数组本身. thisArg:执行 callback 时使用的 this 值. 描述: 小颖的理解是这样的: every 方法为数组中的每个元素