js操纵

20170521

日期花样转换

  1. 将国际标准花样转换为”年/月/日”

  2. 将日期花样将日期花样”20/05/2017″ 转为 “2017-05-20”

演习1

formatDate1 (data) {
  // 将国际标准时间转换成'年/月/日'
  // 1.建立一个日期
  // 2.离别猎取年月日的值
  // 3.将年月日的值拼接成指定花样
  let dateStr = new Date(data)

  let year = dateStr.getFullYear()
  let month = dateStr.getMonth() + 1
  let day = dateStr.getDate()

  // es6 模版字符串 什么时刻会用到?
  console.log(`${year}/${month}/${day}`)
  return `${year}/${month}/${day}`
}

思索:模版字符串运用场景?

  • 字符串里剖析变量、函数、表达式

  • 多行 trim()、特殊符号转义

  • 嵌套运用

参考:

演习2

formatDate2 (data) {
  // 将日期花样 "20/05/2017" 转为 "2017-05-20"
  let str = data
  let newStr = ''
  // 1.split() 支解字符串 
  // 2.数组倒序reverse() 
  // 3.将数组转换成字符串
  newStr = str.split('/').reverse().join('-')
  return newStr
}

数组常常使用的属性和要领

实在看完文档基本上就遗忘了,所以要对内容举行分类轻易今后要用的时刻轻易查找 https://developer.mozilla.org…

总结每种操纵对应的要领、对原数组有没有变动

  • 变动了原数组的内容和长度:push() unshift()/pop() shift() splice()

  • 不转变原数组长内容和长度:concat() slice() forEach() map()

1. 增加元素

  • push() 从数组末端增加元素,返回新数组的length
    [].push.call() 增加对象

  • unshift() 将元素增加到数组开首,并返回新数组长度

  • splice()

2. 删除元素

  • pop() 从数组中删除末了一个元素,并返回该元素的值,数组为空返回undefined

  • shift() 从数组中删除第一个元素,并返回该元素的值, 数组为空返回undefined

  • splice()

3. 兼并数组

  • push() Array.prototype.push.apply(arr1, arr2) 将arr2增加到arr1

  • concat() 兼并多个数组,返回一个新数组,不会变动原数组

4. 过滤数组

  • fliter() 以某种划定规矩筛选出经由过程的元素,返回一个新数组

5. 查找元素

  • find()

  • findIndex()

6. 遍历数组

  • forEach() 对数组每一个元素实行一次函数 没有办法停止或跳出轮回

  • map() 给数组中的每一个元素实行某种操纵,不转变原数组,返回值为一个新数组

  • forEach()和map() 的区分

7. 排序

  • sort()

  • reverse()

8. 范例转换

  • join() 数组-字符串

9. 浅拷贝数组

  • slice() [start, end) 挑选一部分拷贝到一个新数组对象,原数组不转变,start从0最先盘算
    将类数组对象和鸠合转换成一个数组,只需将要领绑定到这个对象上即可Array.prototype.slice.call(Object)

10. 迭代器

  • keys()

  • entries()

11. 盘算

  • reduce()

常常遗忘的详细用法

push 增加元素

形貌:push() 从数组末端增加元素,返回新数组的length

  • 兼并数组Array.prototype.push.apply(arr1, arr2) 将arr2增加到arr1

  • 像数组一样给对象增加对象

var obj = {
  length: 0,
  addElem: function addElem (elem) {
    [].push.call(this, elem)
  }
}

obj.addElem({
  a: 1
})
obj.addElem({
  b: 2
})
console.log(obj.length, obj) //2 Object

slice 浅拷贝数组

  • [start, end) 挑选一部分拷贝到一个新数组对象,原数组不转变,start从0最先盘算

  • 将类数组对象和鸠合转换成一个数组,只需将要领绑定到这个对象上即可Array.prototype.slice.call(Object)

filter 过滤数组

// 以某种划定规矩筛选出经由过程的元素,返回一个新数组
let arr = [1, 2, 3, 4]
function fn (value) {
  return value % 2 === 0
}
console.log(fn(4)) // true
console.log(fn(3)) // false
console.log(arr.filter(fn)) // 2, 4
    原文作者:Hayley
    原文地址: https://segmentfault.com/a/1190000009497242
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞