//Object

//创建
var obj = {}
function obj(){}
class obj{} //Array api
Array属性和方法:
for 条件判断: break continue return
let arr = [function (){}, new Fun(), undefined, null, boolean, string, number, []]; var x = arr.length // arr 中元素的数量
var y = arr.indexOf('1') // "value" 值的索引值 isArray() Array.isArray(arr)判断对象是否为数组。
arr.concat(arr_a, arr_b) 连接两个或更多的数组,并返回结果。注意:不影响原数组
copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中。
entries() 返回数组的可迭代对象。
every(function (){}) 检测数值元素的 每个元素 是否都符合条件。返回 布尔值
filter() 检测数值元素,并返回符合条件所有元素的数组。返回 新数组
fill() 使用一个固定值来填充数组。
find() 返回符合传入测试(函数)条件的数组元素。
findIndex() 返回符合传入测试(函数)条件的数组元素索引。
arr.forEach(function (val, key){}) 数组每个元素都执行一次回调函数。
from() 通过给定的对象中创建一个数组。
includes() (es7新方法)判断一个数组是否包含一个指定的值。
arr.indexOf(arr的value) 搜索数组中的value,并返回key,否则返回 -1
join() 把数组的所有元素放入一个字符串。
keys() 返回数组的可迭代对象,包含原始数组的键(key)。
lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置。
map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
pop() 删除数组的最后一个元素并返回删除的元素。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
reduce(fun) 将数组元素计算为一个值(从左到右)。
reduceRight(fun) 将数组元素计算为一个值(从右到左)。
reverse() 反转数组的value顺序。
shift() 删除并返回数组的第一个元素。
slice() 选取数组的的一部分,并返回一个新数组。
array.some(function (value, key, array){let a = 0; return value > 0;})检测数组元素中是否有元素符合指定条件。如果有立即返回true
sort(fun) 对数组的元素进行排序。
splice(key, num) 从数组中添加或删除元素。
toString() 把数组转换为字符串,并返回结果。
valueOf() 返回数组对象的原始值。 //Map
优点: 查询很快
var map = new Map();//声明
map.set("key","value");//增加
map.delete("key");//删除
map.get("key");//获取
map.has("key");//判断key是否存在 Map test
let k = 0, arr = [], map = new Map(); for(k = 0; k < 1000000; k++){
arr[k] = {id:Number(k), content:'test'};
map.set(k, {id:Number(k), content:'test'});
} console.time('arr');
arr[999999];
console.timeEnd('arr');//0.022ms console.time('map');
map.get(999999);
console.timeEnd('map');//0.005ms //Set
优点:1:可以很快的让array数组的value去重复, 2:相对于Array数组 速度更快
注意: set数组里面没有key键, 只有value,且都是唯一的 属性:
size:返回集合所包含元素的数量 方法:
var set = new Set(); // 空Set
set = new Set([1, 2, 3]);
set.add(value);//添加
set.delete(value);//删除
set.has(value);//返回 布尔值
set.clear(): 移除集合里所有的项 //遍历
set.keys().next().value
set.values().next().value
set.entries().next().value['0']
forEach((value, value, set)=>{}) Set test
//add
let k = 0, arr = [], set = new Set();
for(k = 0; k < 1000000; k++){
arr[k] = {id:Number(k), content:'test'};
set.add({id:Number(k), content:'test'});
}

javascript 集合 Object Array Map Set的更多相关文章

  1. 再谈js对象数据结构底层实现原理-object array map set

    如果有java基础的同学,可以回顾下<再谈Java数据结构—分析底层实现与应用注意事项>:java把内存分两种:一种是栈内存,另一种是堆内存.基本类型(即int,short,long,by ...

  2. [Javascript] Chaining the Array map and filter methods

    Both map and filter do not modify the array. Instead they return a new array of the results. Because ...

  3. JS中集合对象(Array、Map、Set)及类数组对象的使用与对比

    原文地址 在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型. ES6引入了iterable类型, ...

  4. JavaScript 对象Array,Map,Set使用

    for(int i = 0 :i < 3 ;i++ ){ //[重点说三遍] 在说明每个对象的用法之前,首先说明 JavaScript 对象的使用一定要注意浏览器的兼容性问题!尤其是IE的版本! ...

  5. JavaScript Array.map

    Array.prototype.map() History Edit This article is in need of a technical review. Table of Contents ...

  6. Javascript判断object还是list/array的类型(包含javascript的数据类型研究)

    前提:先研究javascript中的变量有几种,参考: http://www.w3school.com.cn/js/js_datatypes.asp http://glzaction.iteye.co ...

  7. 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight

    做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...

  8. Array.from();Object.keys();Array.map()

    Array.from():方法从一个类似数组或可迭代对象创建一个新的数组形式: const bar = ["a", "b", "c"]; A ...

  9. JavaScript高级编程——Array数组迭代(every()、filter()、foreach()、map()、some(),归并(reduce() 和reduceRight() ))

    JavaScript高级编程——Array数组迭代(every().filter().foreach().map().some(),归并(reduce() 和reduceRight() )) < ...

随机推荐

  1. [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause报错问题的解决

    run SQL: select version(),@@sql_mode;SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','' ...

  2. 揭秘webpack plugin

    前言 Plugin(插件) 是 webpack 生态的的一个关键部分.它为社区提供了一种强大的方法来扩展 webpack 和开发 webpack 的编译过程.这篇文章将尝试探索 webpack plu ...

  3. Js 数组按数量分部!

    使用 reduce 将数组分为几个部分,每个部分最多10个! 相比其他语言使用 js  实现这个逻辑非常的简单方便! var group = function (source, step) { if ...

  4. 史上最简单的vi教程,10分钟包教会

    从第一次接触vi/vim到现在已经十几年了,在这个过程中,来来回回,反反复复,学习vi很多次了. 虽然关于vi的使用,我还远未达到"专家"的水平,但对于vi的使用,我有话说. 1. ...

  5. UAF——use after free

    本文系pwn2web原创,转载请说明出处 UAF 漏洞,英文原名use after free,该漏洞简洁的可以概括为 分配一块内存 free该内存但不回收,构成悬垂指针 再次构造分配同样大小的内存,按 ...

  6. Android studio 连接真机

    首先用数据线连接真机 1.打开开发者模式(小米手机mix2s为例 设置->我的设备->全部参数->连续点击MIUI版本——开启成功) 2.在更多设置中找到系统安全设置——允许安装未知 ...

  7. [bzoj4011] [洛谷P3244] [HNOI2015] 落忆枫音

    Description 「恒逸,你相信灵魂的存在吗?」 郭恒逸和姚枫茜漫步在枫音乡的街道上.望着漫天飞舞的红枫,枫茜突然问出 这样一个问题. 「相信吧.不然我们是什么,一团肉吗?要不是有灵魂--我们也 ...

  8. SycSec成都信息工程大学2019CTF-前五道WEB题writeup

    一.WEB (1)一起来撸猫 flag藏在标签的注释内  <!--这是注释--> (2)你看见过我的菜刀么 eval漏洞 利用蚁剑连接 连接密码就是要post传的参数 连接成功后在网站根目 ...

  9. Django自定义认证系统

    官网教程:https://docs.djangoproject.com/en/2.2/topics/auth/customizing/ app下的model.py from django.db imp ...

  10. Android教程2020 - RecyclerView实际使用

    示例,用RecyclerView的item做出一个列表. Android教程2020 - 系列总览 本文链接 前面我们已经知道如何用RecyclerView显示一列数据.这里我们做出一个具体的例子.尽 ...