ES6常用数据类型方法总结

数组方法总结

//获取某个下标可以直接 arr[下标] 修改可以arr[下标]=?

1.splice从某一下标开始删除后多少位

数组名.splice( ? , ? ) 参数一(给一个下标) 参数二(一个数字,意为从某个小标开始往后删除多少个)

第三个参数加上为替换

splice(index,len,[item])    注释:该方法会改变原始数组。

splice有3个参数,它也可以用来<替换/删除/添加>数组内某一个或者几个值

index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空

如:arr = [‘a‘,‘b‘,‘c‘,‘d‘]

<删除> ----  item不设置

arr.splice(1,1)   //[‘a‘,‘c‘,‘d‘]         删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变

arr.splice(1,2)  //[‘a‘,‘d‘]          删除起始下标为1,长度为2的一个值,len设置的2

<替换> ---- item为替换的值

arr.splice(1,1,‘ttt‘)        //[‘a‘,‘ttt‘,‘c‘,‘d‘]         替换起始下标为1,长度为1的一个值为‘ttt’,len设置的1

arr.splice(1,2,‘ttt‘)        //[‘a‘,‘ttt‘,‘d‘]         替换起始下标为1,长度为2的两个值为‘ttt’,len设置的1

<添加> ----  len设置为0,item为添加的值

arr.splice(1,0,‘ttt‘)        //[‘a‘,‘ttt‘,‘b‘,‘c‘,‘d‘]         表示在下标为1处添加一项‘ttt’

2.arr.every(callback) 依据判断条件,数组的元素是否全满足,若满足则返回ture

let arr = [1,2,3,4,5]
 
let arr1 = arr.every( (i, v) => i < 3)
 
console.log(arr1) // false
 
let arr2 = arr.every( (i, v) => i < 10)
 
console.log(arr2) // true

3.some 只要有一个符合条件,就返回true

4…find() 查找(返回值为第一个符合条件的元素)

5.arr.filter(callback) 过滤数组,返回一个满足要求的数组

let arr = [1,2,3,4,5]
 
let arr1 = arr.filter( (i, v) => i < 3)
 
console.log(arr1) // [1, 2]

 

6.reduce() 将数组元素计算为一个值(从左到右),常用于累加,累乘

var numArr=[1,2,3,4];
numArr.reduce(function(prev,current){
    return prev+current;
})
console.log(numArr) //10

7.arr.push() 从后面添加元素,返回值为添加完后的数组的长度

let arr = [1,2,3,4,5]
 
console.log(arr.push(5)) // 6
 
console.log(arr) // [1,2,3,4,5,5]

**8.arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素

let arr = [1,2,3,4,5]
 
console.log(arr.pop()) // 5
 
console.log(arr) //[1,2,3,4]

9.arr.shift()从前面删除,第一个

10.arr.unshift() 从前面添加元素, 返回值是添加完后的数组的长度

let arr = [1,2,3,4,5]
 
console.log(arr.unshift(2)) // 6
 
console.log(arr) //[2,1,2,3,4,5]

11.arr.concat() 连接两个数组 返回值为连接后的新数组

let arr = [1,2,3,4,5]
 
console.log(arr.concat([1,2])) // [1,2,3,4,5,1,2]
 
console.log(arr) // [1,2,3,4,5] 

12.str.split() 将字符串转化为数组

let str = '123456'
 
console.log(str.split('')) // ["1", "2", "3", "4", "5", "6"]

13.arr.sort() 将数组进行排序,返回值是排好的数组,默认是按照最左边的数字进行排序,不是按照数字大小排序的,见例子。

let arr = [2,10,6,1,4,22,3]
 
console.log(arr.sort()) // [1, 10, 2, 22, 3, 4, 6]
 
let arr1 = arr.sort((a, b) =>a - b)
 
console.log(arr1) // [1, 2, 3, 4, 6, 10, 22]
 
let arr2 = arr.sort((a, b) =>b-a)
 
console.log(arr2) // [22, 10, 6, 4, 3, 2, 1]

14.arr.reverse() 将数组反转,返回值是反转后的数组

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

15.arr.slice(start,end) 切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组

let arr = [1,2,3,4,5]
 
console.log(arr.slice(1,3)) // [2,3]
 
console.log(arr) // [1,2,3,4,5]

16.arr.forEach(callback) 遍历数组,无return

*注意:(伪数组转成真数组才能遍历 Array.prototype.slice.call(伪数组) )

​ callback的参数: value --当前索引的值

index --索引

array --原数组

let arr = [1,2,3,4,5]
 
arr.forEach( (value,index,array)=>{
 
console.log(`value:${value} index:${index} array:${array}`)
 
})
 
// value:1 index:0 array:1,2,3,4,5
 
// value:2 index:1 array:1,2,3,4,5
 
// value:3 index:2 array:1,2,3,4,5
 
// value:4 index:3 array:1,2,3,4,5
 
// value:5 index:4 array:1,2,3,4,5
 
 
let arr = [1,2,3,4,5]
 
arr.forEach( (value,index,array)=>{
 
value = value * 2
 
console.log(`value:${value} index:${index} array:${array}`)
 
})
 
console.log(arr)
 
// value:2 index:0 array:1,2,3,4,5
 
// value:4 index:1 array:1,2,3,4,5
 
// value:6 index:2 array:1,2,3,4,5
 
// value:8 index:3 array:1,2,3,4,5
 
// value:10 index:4 array:1,2,3,4,5
 
// [1, 2, 3, 4, 5]

17.arr.map(callback) 映射数组(遍历数组),有return 返回一个新数组

callback的参数: value --当前索引的值

index --索引

array --原数组

 
let arr = [1,2,3,4,5]
 
arr.map( (value,index,array)=>{
 
value = value * 2
 
console.log(`value:${value} index:${index} array:${array}`)
 
})
 
console.log(arr)

18.arr.indexOf() 查找某个元素的索引值,若有重复的,则返回第一个查到的索引值若不存在,则返回 -1

let arr = [1,2,3,4,5,2]
 
let arr1 = arr.indexOf(2)
 
console.log(arr1) // 1
 
let arr2 = arr.indexOf(9)
 
console.log(arr2) // -1

19.arr.lastIndexOf() 和arr.indexOf()的功能一样,不同的是从后往前查找

20.Array.from() 将伪数组变成数组,就是只要有length的就可以转成数组

let str = '12345'
 
console.log(Array.from(str)) // ["1", "2", "3", "4", "5"]
 
let obj = {0:'a',1:'b',length:2}
 
console.log(Array.from(obj)) // ["a", "b"]

21.arr.includes() 判断数中是否包含给定的值

let arr = [1,2,3,4,5]
 
let arr1 = arr.includes(2)
 
console.log(arr1) // ture
 
let arr2 = arr.includes(9)
 
console.log(arr2) // false
 
let arr3 = [1,2,3,NaN].includes(NaN)
 
console.log(arr3) // true

ps:与indexOf()的区别:

1 indexOf()返回的是数值,而includes()返回的是布尔值

2 indexOf() 不能判断NaN,返回为-1 ,includes()则可以判断

ES6快速删除数组中指定元素的方法

let arr =[{id:1},{id:2},{id:3},{id:8}]
let id = 8
arr.splice(arr.findIndex(item => item.id === id), 1) // [{id:1},{id:2},{id:3}]
arr.findIndex(item => item.id === id)//获取获取id=8的那个对象的下标

对象方法总结

修改对象的某个属性的值可以obj.键=?

1.assgin()把几个对象合并为一个对象,主要为合并属性

const obj = { a: 1 };

let citys = { name: "杭州" };

let container = { des: '你好,heelo' }


let last_obj = Object.assign(obj,citys,container)

console.log(last_obj); 


第二种情况
    const a={a:12,b:13}
    const b={a:116,c:15}
    const assign = Object.assign(a, b);
    console.log(assign)//{a: 116, b: 13, c: 15}

2.获取对象键的集合

var obj = { foo: 'bar', baz: 42 };
Object.keys(obj)

3.获取对象值得集合

var obj = { foo: 'bar', baz: 42 };
Object.values(obj)

4.for … in 遍历对象

const a={a:12,b:13}
for (let axValue in a) {
      console.log(axValue)//  循环两次分别打印 a  b
    }
    

5.把对象遍历为集合的形式

///Object.entries遍历键值对
let obj = {a:1,b:2,c:function(){}};
Object.entries(obj); [['a',1],['b', 2], ['c',f]返回对象键值对数组

6.解构一个对象,也就是把这个对象里面的某个对应的键拿出来

const values = {supplierId:12,personId:12}
const {supplierId, personId} = values;
此时supplierId=12      personId=12

Map方法总结

1.Map基本使用

let m = new Map();
m.set('c', 'content')
m.get('c')//content
m.size//1
m.has('c') // true
m.delete('c')
m.has('c')
m.clear()

2.Map结构和数组结构之间的转换

let map = new Map([
  [1, 'one'],
  [2, 'two'],
  [3, 'three'],
]);
[...map.keys()]// [1, 2, 3]
[...map.values()]// ['one', 'two', 'three']
[...map.entries()]// [[1,'one'], [2, 'two'], [3, 'three']]
[...map]// [[1,'one'], [2, 'two'], [3, 'three']]

3.Map 循环遍历

Map 原生提供三个遍历器:

  • keys():返回键名的遍历器。
  • values():返回键值的遍历器。
  • entries():返回所有成员的遍历器。
let map = new Map([
  ['F', 'no'],
  ['T',  'yes'],
]);
for (let key of map.keys()) {
  console.log(key);
}
// "F"
// "T"
for (let value of map.values()) {
  console.log(value);
}
// "no"
// "yes"

4.js Map和java 的map不一样,内部是按顺序存储

const m = new Map();
m.set('key1', 'A');
m.set('key2', 'B');
m.set('keyn', 'N');
//获取第一个(这种方法只能获取第一个)
console.log(m.keys().next().value); // 'key1'
console.log(m.values().next().value); // 'A'
console.log(m.entries().next().value); // [ 'key1', 'A' ]
//获取任意一个没有直接方法,只能通过转换思路获取(这种方法可以获取任意一个)
// The key at index 2
let key = Array.from(m.keys())[2];// 'keyn'
// The value of the item at index 2
let val1 = m.get(key); // 'N'
//获取最后一个的一种方法
 Array.from(map.values()).pop();

5.合并多个map

let merged = new Map([...map1, ...map2, ...map3])

6.普通object转换成map

const map = new Map(Object.entries({foo: 'bar'}));
map.get('foo'); // 'bar'

7.删除前n个值

方法一:
aa = new Map(Array.from(aa).slice(3));

方法二:
for (let i = 0; i < 3; i ++) {
    aa.delete(aa.keys().next());
}

字符串

1.校验字符串中是否包含某字符

在ES6里面添加了一些字符串的方法:includes()、startsWith()、endsWith(),他们可以很方便的判断字符串里是否包含其他字符串;
 

includes():是否包含了参数字符串,返回布尔值
startsWith():参数字符串是否在原字符串的头部,返回布尔值
endsWith():参数字符串是否在原字符串的尾部,返回布尔值
 

例子:
let dessert = 'cake',
drink = 'tea'
let breakfast =`今天的早餐是 ${dessert} 与 ${drink} !`;
 
console.log(breakfast.startsWith('今天')) //true
console.log(breakfast.endsWith('!')) //true
console.log(breakfast.includes('apple')) //false
 

这三个方法都支持第二个参数,表示开始搜索的位置。
console.log(breakfast.startsWith('今天',0)) //true
console.log(breakfast.endsWith('!',19)) //true
console.log(breakfast.includes('cake',5)) //true
 

注意:使用第二个参数时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。

题外

1.JSON转换

1.对象转为json
JSONObject.toJSON(Object)
2.json转为对象
Customer customer = JSONArray.parseObject(body, Customer.class);
3.list对象转为json
JSON.toJSONString(list)
4.json转为list对象
List<User> list = JSON.parseArray(json,User.class);

html标签

字体加粗:<b>写上你想bai写的字</b>

字du体加大zhi: <big>写上你想写的字</big>

字体控制大小:dao<h1>写上你想写的字</h1> (其中字体大小可从h1-h5,h1最大,h5最小)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值