ES6(十)map、set与数组和对象的比较

Map和数组的对比

let map = new Map()
let array = []
// 增
map.set(‘t‘, 1)
array.push({t: 1})
console.log(‘add‘, map, array)
// 查
let mapExist = map.has(‘t‘)
let arrayExist = array.find(item => item.t)
console.log(‘get‘, mapExist, arrayExist)
// 改
map.set(‘t‘, 2)
array.forEach(item => {
  item = item.t ? item.t = 2 : ‘‘
  return item
})
console.log(‘modify‘, map, array)
// 删
map.delete(‘t‘)
array.splice(array.findIndex(item => item.t), 1)
console.log(‘remove‘, map, array)

set和数组的对比

let set = new Set()
let array = []
// 增
set.add({t: 1})
array.push({t: 1})
console.info(‘add‘, set, array)
// 查
let setExist = set.has({t: 1})
let arrayExist = array.find(item => item.t)
console.info(‘get‘, setExist, arrayExist)
// 改
set.forEach(item => {
  item = item.t ? item.t = 2 : ‘‘
  return item
})
array.forEach(item => {
  item = item.t ? item.t = 2 : ‘‘
  return item
})
console.info(‘modify‘, set, array)
// 删
set.forEach(item => {
  item = item.t ? set.delete(item) : ‘‘
  return item
})
array.splice(array.findIndex(item => item.t), 1)
console.info(‘delete‘, set, array)

map、set和对象的使用比较

let item = {t: 1}
let map = new Map()
let set = new Set()
let obj = {}

// 增
map.set(‘t‘, 1)
set.add(item)
obj.t = 1
console.log(‘add‘, map, set, obj)
// 查
console.info({
  action: ‘get‘,
  mapExist: map.has(‘t‘),
  setExist: set.has(item),
  objExist: ‘t‘ in obj
})
// 改
map.set(‘t‘, 2)
item.t = 2
obj.t = 2
console.log(‘modify‘, map, set, obj)
// 删
map.delete(‘t‘)
set.delete(item)
delete obj.t
console.log(‘remove‘, map, set, obj)

原文地址:https://www.cnblogs.com/ronle/p/11494891.html

时间: 2024-08-05 21:06:31

ES6(十)map、set与数组和对象的比较的相关文章

es6 Array.from() 将类似数组的对象转化为数组(1)

Array.from() 将数组对象转化为数组,应用方式Array.from(arr) arr数组对象的名称; 常用与类似数组的对象是DOM操作返回的Nodelist集合(如: let ps = document.querySelectorAll('p')),函数内部的arguments对象(如:function(){ let args = Array.from(arguments); //...}) 备注: querySelectorAll('')返回的是一个类似数组的对象,只有将对象转化为数

vue学习(十) v-for循环普通数组 、对象数组、 迭代数字

//html <div id="app"> <p v-for="item in list">{{item}}</p> <p v-for="(item, i) in list">索引{{i}}---值{{item}}</p> <p v-for="user in list2">id是{{user.id}}---名字是{{user.name}} </p&g

js map()处理数组和对象数据

之前的文章梳理了JS数组与对象属性的遍历方法,本文介绍专门用以遍历并处理数据的map()方法. 一.原生map() map()是数组的一个方法,它创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果.map()里面的处理函数接受三个参数,分别指代当前元素.当前元素的索引.数组本身.(IE9以下不支持,对老旧浏览器的兼容性方法参考这里) /**** 原生map() ****/ var arrTmp = [1,2,3]; var arrDouble = arrTmp.map(f

ES6数组和对象的扩展

es6数组的扩展 扩展运算符 扩展运算符是对具有Iterator 接口的对象,都可以使用扩展运算符 Array.from() 用于将两类对象转化为真正的数组 1.类似数组的对象(只要据有length属性, 都可以被转化为数组) 2.可遍历(iterable)的对象 Array.of() 将一组值转化为数组 find和findIndex find方法,用于找出第一个符合条件的数组成员,没有找到会返回undefiend,findIndex方法返回的是第一个符合条件成员的位置, 如果找不到返回-1,

前端开发者不得不知的ES6十大特性

前端开发者不得不知的ES6十大特性 转载 作者:AlloyTeam 链接:http://www.alloyteam.com/2016/03/es6-front-end-developers-will-have-to-know-the-top-ten-properties/ ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率. 本文主要针对ES6做一个简要介绍. 主要译自:  http://

js中遍历数组、对象的方式

1.标准的for循环遍历数组 var array = [1,2,3,4,5,6,7]; for (var i = 0; i < array.length; i) { console.log(i,array[i]); } 2.for in 遍历对象 for in 以任意顺序遍历一个对象的可枚举属性. 因此当迭代那些访问次序重要的 arrays 时用整数索引去进行 for 循环 (或者使用 Array.prototype.forEach() 或 for...of 循环) . 一般常用来遍历非数组的对

JS数组与对象的遍历方法大全

本文简单解析各种数组和对象属性的遍历方法: 原生for循环.for-in及forEach ES6 for-of方法遍历类数组集合 Object.key()返回键名的集合 jQuery的$.each() underscore的_.each() 文中的范例基于以下数组和对象. ? 1 2 3 4 5 6 7 8 var arrTmp = ["value1","value2","value3"]; var objTmp = {     aa:"

原创-整理了下常用的js数组 、对象、数字、字符串的操作方法

终于整理好了...主要是一些常用的函数,包含es6和es5的所有常用的,吧一些不常用的全部砍掉,省的大家看的费事.发现这个到博客上面有点乱.给个百度云地址:https://pan.baidu.com/s/1MwMdW5P8IOoyGRYUQ2dBtQ 直接下就可以 字符串方法 : es6 include 返回布尔值,表示是否找到了参数字符串. 第二个参数表示开始搜索位置 startsWith 返回布尔值,表示参数字符串是否在原字符串的头部. 第二个参数表示开始搜索位置 endsWith 返回布尔

ES6中map数据结构学习

在项目中遇到一个很恶心的需求,然后发现ES6中的map可以解决,所以简单学习了一下map. Javascript的Object本身就是键值对的数据结构,但实际上属性和值构成的是“字符串-值”对,属性只能是字符串,如果传个对象字面量作为属性名,那么会默认把对象转换成字符串,结果这个属性名就变成“[object Object]”:. ES6提供了“值-值”对的数据结构,键名不仅可以是字符串,也可以是对象.它是一个更完善的Hash结构. 1.键值对,键可以是对象 const map1 = new Ma

es6的map()方法解释

es6的map()方法解释 map方法的作用不难理解,即“映射”,也就是原数组被“映射”成对应新数组.下面这个例子是数值项求平方: var data = [1, 2, 3, 4]; var arrayOfSquares = data.map(function (item) { return item * item; }); alert(arrayOfSquares); // 1, 4, 9, 16 callback需要有return值,如果没有,就像下面这样: var data = [1, 2,