首页 > 其他分享 >【小技巧】快速读取数组中的对象

【小技巧】快速读取数组中的对象

时间:2022-09-22 23:34:05浏览次数:52  
标签:lich name 对象 cache 技巧 数组 读取

背景

开发中经常遇到需要从数组中读取某个对象,每次遍历数组查询并不是一个好的选择,会消耗无谓的资源,我们可以使用一个对象作为中间结构,后续再次读取对象是可以直接从中间对象中获取

开始

代码如下

/*
 *快速通过key获取数组中的元素
 */
const array = [{ name: "lich", age: "19" }, { name: "dk" }];

// 定义一个对象
const cache = {};
// 遍历数组,以对象的唯一标识(name)作为key,设置到cache中
array.forEach((elem) => {
  cache[elem.name] = elem;
});

// 看下数组与cache中的结构
console.log(array, cache);

// 快速读出lich
console.log(cache["lich"]);
// 快速读出dk
console.log(cache["dk"]);
debugger;

总结

  1. 通过对象的key检索value具有非常好的性能
  2. 该思想不仅可以用在javascript的开发中,java中一样可以用该思路进行快速检索(使用一个HashMap最为中间结构)

标签:lich,name,对象,cache,技巧,数组,读取
From: https://www.cnblogs.com/lee35/p/16721210.html

相关文章

  • js实现数组内相邻元素上移,下移
    上移、下移/**   *移动切换位置   *@param{Array}arr数据源   *@param{Number}index序号   *@param{String}type上移下移......
  • .map 给数组对象添加新属性
    letmenuList=[{name:'晓明',age:18},{name:'黎明',age:20},{name:'德华',age:28},]constlist=this.list.map((item)=>({...item,title:`新属性1`......
  • 可变长参数和数组的异同
    1,可变长参数和数组的异同   1.1相同:    都可以在方法中作为数组类型的参数   在方法中处理时都当作数组处理      1.2不相同:    ......
  • C语言第15天,指针与多维数组
    ##数组名的转换规则当数组名arr出现在一个表达式当中,数组名arr将会被转换为指向数组首元素的指针。但是,这个规则有两个例外:1.对数组名arr使用sizeof时。2.对数组名......
  • 代码随想录day2|977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵
    977.有序数组的平方题目链接:[https://leetcode.cn/problems/squares-of-a-sorted-array/submissions/]文章链接:[https://programmercarl.com/0977.有序数组的平方.html#......
  • 7. NumPy创建区间数组
    1.前言所谓区间数组,是指数组元素的取值位于某个范围内,并且数组元素之间可能会呈现某种规律,比如等比数列、递增、递减等。为了方便科学计算,PythonNumPy支持创建区间数组......
  • 6. Numpy创建数组
    1.前言在《NumPyNdarray对象》一节,介绍了创建ndarray数组的基本方法,除了使用array()方法外,NumPy还提供了其他创建ndarray数组的方法。本节对这些常用方法做简单介......
  • 5. NumPy数组属性
    1.前言本节介绍Numpy数组的常用属性。2.ndarray.shapeshape属性的返回值一个由数组维度构成的元组,比如2行3列的二维数组可以表示为(2,3),该属性可以用来调整数......
  • WAF绕过小技巧
    一、WAF绕过1、脏数据绕过即传入一段长数据使waf失效,从而实现绕过waf。某些waf处理POST的数据时,只会检测开头的8K,后面选择全部放过。例如,当发现某网站存在一个反序列化......
  • 方法引用-数组的构造器引用和Junit测试概述
    方法引用-数组的构造器引用ArrayBuilder接口/*定义一个创建数组的函数式接口*/publicinterfaceArrayBuilder{//定义一个创建int类型数组的方法,参数传递......