首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel实战技巧55: 包含重复列表查找指定数据最后出现数据

文章详情:excelperfect 本文题目比较拗口,用一个示例来说明,如下图1所示,是一个记录员工值班日期表,安排每天值班时,需要查看员工最近一次值班日期,以免值班时间隔得太近。...A2:A10,如果相同返回TRUE,不相同则返回FALSE,得到一个由TRUE和FALSE组成数组,然后与A2:A10所行号组成数组相乘,得到一个由行号和0组成数组,MAX函数获取这个数组最大...,也就是与单元格D2相同数据A2:A10最后一个位置,减去1是因为查找是B2:B10,是从第2行开始,得到要查找B2:B10位置,然后INDEX函数获取相应。...图2 使用LOOKUP函数 公式如下: =LOOKUP(2,1/($A$2:$A$10=$D$2),$B$2:$B$10) 公式,比较A2:A10与D2,相等返回TRUE,不相等返回FALSE...组成数组,由于这个数组找不到2,LOOKUP函数在数组中一直查找,直至最后一个比2小最大,也就是数组最后一个1,返回B2:B10对应,也就是要查找数据列表中最后

10.4K20

JavaScript进阶-01

函数外部无法被访问 函数参数也是函数内部局部变量 不同函数内部声明变量无法互相访问 函数执行完毕后,函数内部变量实际被清空了 块作用域 JavaScript 中使用 {} 包裹代码称为代码块... JavaScript 除了变量外还有常量,常量与变量本质区别是【常量必须要有且不允许被重新赋值】,常量值为对象时其属性和方法允许重新赋值。...作用域链本质上是底层变量查找机制,函数被执行时,会优先查找当前函数作用域中查找变量,如果当前作用域查找不到则会依次逐级查找作用域直到全局作用域,如下代码所示: // 全局作用域...相同作用域链按着从小到大规则查找变量 子作用域能够访问父作用域,父作用域无法访问子作用域 1.4 闭包 闭包是一种比较特殊和函数,使用闭包能够访问函数作用域中变量。...获取剩余单元,但只能置于最末位 允许初始化变量默认,且只有单元为 undefined 时默认才会生效 注:支持多维解构赋值,比较复杂后续有应用需求时再进一步分析 3.2 对象解构 对象解构是将对象属性和方法快速批量赋值给一系列变量简洁语法

69620
您找到你想要的搜索结果了吗?
是的
没有找到

ES2019 8 个非常有用功能

多维数组上使用时,它将转换为一维。默认情况下,flat()只会将数组展平一。 但是页可以指定级数,并在调用时作为参数传递。如果不确定需要多少,也可以使用 Infinity。...这样就可以展平过程中使用原始数组每个元素。当在对数组进行展平操作同时又要修改内容时很方便。...现在能够对那些有问题代码段进行分类,并且可以将它们转换回其原始表示形式。 Symbol.prototype.description 符号是 ES2015(ES6)引入新数据类型。...它们通常用于标识对象属性。ES2019 增加了 description 属性。这个属性是只读,无法更改它。它用来返回给定符号描述。 要牢记两点。首先,创建符号时描述不是必须,而是可选。...它缺点是返回字符串还包含 Symbol()。另一个区别是 toString() 方法永远不会返回不存在undefined 描述。

2.1K20

JavaScript 进阶 - 第1天

函数外部无法被访问 函数参数也是函数内部局部变量 不同函数内部声明变量无法互相访问 函数执行完毕后,函数内部变量实际被清空了 块作用域 JavaScript 中使用 {} 包裹代码称为代码块...; // 报错 JavaScript 除了变量外还有常量,常量与变量本质区别是【常量必须要有且不允许被重新赋值】,常量值为对象时其属性和方法允许重新赋值。.../assets/scope.png)] 作用域链本质上是底层变量查找机制,函数被执行时,会优先查找当前函数作用域中查找变量,如果当前作用域查找不到则会依次逐级查找作用域直到全局作用域,如下代码所示...相同作用域链按着从小到大规则查找变量 子作用域能够访问父作用域,父作用域无法访问子作用域(就近原则) 1.4 闭包 闭包是一种比较特殊和函数,使用闭包能够访问函数作用域中变量。...获取剩余单元,但只能置于最末位 允许初始化变量默认,且只有单元为 undefined 时默认才会生效 注:支持多维解构赋值,比较复杂后续有应用需求时再进一步分析 3.2 对象解构 对象解构是将对象属性和方法快速批量赋值给一系列变量简洁语法

79020

JavaScriptJSON

2.1 简单 简单Json表示可以是字符串、数值、布尔和null!...JS中上面两种方法都可以表示对象,但是Json没有变量概念。...其次,没有末尾分号(因为这不是JavaScipt语句,所以也不需要分号), 所以Json对象,对象属性必须是字符串(也就是说要加双引号),属性可以是简单,数组,对象,所以Json对象表现形式如下...最简单情况下,这两个方法风别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript。...JSON.stringify()除了接收第一个参数(要序列化JavaScript对象外),还可以接收另外两个参数,这两个参数用于指定以不同方式序列化JavaScript对象

1.4K70

ES6 标准之 let、const 详解

增强对象字面量:支持更简洁对象属性和方法定义。 符号(Symbol):一种新基本数据类型,用于创建唯一标识符。 迭代器和生成器:用于控制循环行为和生成序列。...ES6之前,JavaScript语言功能和语法相对较为古老和有限,缺乏许多现代编程语言特性,导致大型项目开发容易出现混乱和难以维护情况。...具体来说,使用 let 声明变量 for 循环中,每次迭代都会创建一个新变量绑定。这与 var 行为不同,var 声明变量函数级别上是共享同一个变量。...变量整个循环过程是共享,所以当 setTimeout 回调函数执行时,i 已经变成了 10(循环结束后),因此会输出 10 十次。...块作用域 提升 有 无 无 重复声明 允许 不允许 不允许 必须初始化 否 否 是 重新赋值 允许 允许 不允许 总结 ES6 为JavaScript带来了许多强大新特性,使开发者能够编写更加简洁

11710

JS进阶第一天

函数外部无法被访问 函数参数也是函数内部局部变量 不同函数内部声明变量无法互相访问 函数执行完毕后,函数内部变量实际被清空了 块作用域 JavaScript 中使用 {} 包裹代码称为代码块... JavaScript 除了变量外还有常量,常量与变量本质区别是【常量必须要有且不允许被重新赋值】,常量值为对象时其属性和方法允许重新赋值。...作用域链本质上是底层变量查找机制,函数被执行时,会优先查找当前函数作用域中查找变量,如果当前作用域查找不到则会依次逐级查找作用域直到全局作用域,如下代码所示: // 全局作用域...相同作用域链按着从小到大规则查找变量 子作用域能够访问父作用域,父作用域无法访问子作用域 闭包 闭包是一种比较特殊和函数,使用闭包能够访问函数作用域中变量。...获取剩余单元,但只能置于最末位 允许初始化变量默认,且只有单元为 undefined 时默认才会生效 注:支持多维解构赋值,比较复杂后续有应用需求时再进一步分析 对象解构 对象解构是将对象属性和方法快速批量赋值给一系列变量简洁语法

67420

Node.js模块系统(下)

Node.js 自带了一个叫做 http 模块,我们我们代码请求它并把返回赋给一个本地变量。 这把我们本地变量变成了一个拥有所有 http 模块所提供公共方法对象。...Node.js require 方法文件查找策略如下: 由于 Node.js 存在 4 类模块(原生模块和3种文件模块),尽管 require 方法极其简单,但是内部加载却是十分复杂,其加载优先也各自不同...如下图所示: 从文件模块缓存中加载 尽管原生模块与文件模块优先不同,但是都会优先从文件模块缓存中加载已经存在模块。 从原生模块加载 原生模块优先仅次于文件模块缓存优先。...如果 X.json 是一个文件, 解析 X.jsonJavaScript 对象并停止执行。 4. 如果 X.node 是一个文件, 将 X.node 作为二进制插件载入并停止执行。...如果 X/index.json 是一个文件, 解析 X/index.jsonJavaScript 对象并停止执行。 3.

89830

求职 | 史上最全web前端面试题汇总及答案2

不同在于:slice返回截取后新实例,splice原array实例上操作,更详细请见下文链接。 JS数组对象详解 8、如何阻止表单提交?...只有Math和Global(浏览器环境,Global就是Window) 22、列举Javascript本地对象。...3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组,同时把这个元素内容作为对象一个属性,并赋值为1,存入到第2步建立对象。...说明:至于如何对比,就是每次从原数组取出一个元素,然后到对象中去访问这个属性,如果能访问到,则说明重复。...②jQuery中有专门获取服务器json数据方法,getJSON(),回调,jQuery会自动将json转换为javascript对象。 8、addClass、css有何用途?

6K20

提高前端性能之Javascript优化

访问某个对象通常要用脚本。通过把重复访问对象存储在用户定义变量,以及在后续对该对象引用中使用变量,可以立即实现性能提升。   ...将变量保存在本地作用域内能让 JavaScript 更快地访问它们。   局部变量是基于最具体作用域,并且可能会穿过多个级别的作用域,因此查找这一动作可能导致出现通用查询。...一个它前面没有变量声明局部变量定义函数作用域时,需要在每个变量之前加上 let 或 const,以便定义当前作用域,防止查找并加速代码执行。   ...对于更高级分析,你可以使用 Firefox 或 Chrome 开发人员工具“性能”视图来分析不同指标,例如: ?...对于基于 Node.js 构建应用程序,NodeSource Platform 也是一种非常好、影响低方式,它可以非常精细别上探索应用程序性能。

84330

JavaScript | 笔记

-- 注释节点 --> 参考: 整个body中找到所有的注释(通过JS来操作节点寻找)-CSDN社区 // 从 body 开始向内查找 var bodyElement = document.getElementsByTagName..., 而不是 replaceWith 后 // 注意: 经测试: 不同节点.replaceWith(node1) 时, node1 对象不要重复使用, 否则可能导致想象外效果 temp1.replaceWith...请参阅 XMLHttpRequest HTML 以了解使用 XHR 获取 HTML 内容更多信息。 json response 是一个 JavaScript 对象。...这个对象是通过将接收到数据类型视为 JSON 解析得到。 text response 是一个以 DOMString 对象表示文本。...二域名是域名下衍生,比如有个一域名为mcrfun.com,则blog.mcrfun.com和www.mcrfun.com均是其衍生出来域名。

1.5K20

十大经典思维面试题_JS面试题大全

对象理解 答:this总是指向函数直接调用者(而非间接调用者);   如果有new关键字,this指向new出来那个对象;   事件,this指向触发这个事件对象,特殊是,IE...可以看看我前面的文章 this不同情况下指向 4、eval是做什么?...IE虽然JavaScript对象通过标记清除方式进行垃圾回收,但BOM与DOM对象却是通过引用计数回收垃圾,也就是说只要涉及BOM及DOM就会出现循环引用问题。...(1)工厂模式: 主要好处就是可以消除对象耦合,通过使用工程方法而不是new关键字。将所有实例化代码集中一个位置防止代码重复。...,即解决了重复实例化问题 ,又解决了对象识别的问题,该模式与工厂模式不同之处在于: 构造函数方法没有显示创建对象 (new Object()); 直接将属性和方法赋值给 this 对象;

67910

JS与ES6高级编程学习笔记(三)——JavaScript面向对象编程

(9)、对象查找成员时先找本对象本身成员,然后查找构造器原型成员,一步一步向上查找,最终查询Object成员,这就是原型链。...6.1、覆盖(Override) JavaScript没有接口,但支持重写功能,根据原型链查找成员规则自身成员优先高于原型链成员优先,遵照就近原则。...猫吃小鱼 Cat.prototype.eat严格意义上来说并不是重写了Animaleat方法而是自己原型对象添加了一个优先更高eat方法,使和call或apply可以调用父类方法且可以指定执行上下文为当前对象...6.2、重载(Overload) 面向对象同名方法不同参数满足不同功能需要就是重载,重载增加了灵活性。JavaScript是弱类型语言,没有重载,但可以模拟实现。...{"price":03,"size":1.}JavaScript是正确JSON中就需要修改成{"price":3,"size":1.0}。 4、字符串只能是Unicode编码。

71330

CommonJS 详细介绍

CommonJS 终极目标是制定一个像 C++ 标准库一样规范,使得基于 CommonJS API 应用程序可以不同环境下运行,就像用 C++ 编写应用程序可以使用不同编译器和运行时函数库一样...浏览器 JavaScript ,脚本模块拆分和组合通常使用 HTML script 标签来实现。...换言之,一个 Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码、JSON 或者编译过 C/C++ 扩展。...如果 require 参数 “./“ 或 “../“ 开头,那么则以相对路径方式查找模块,这种方式应用是最常见。例如前面的例子我们用了 require('..../node_modules/express')加载两次,也不会重复加载,因为尽管两次参数不同,解析到文件却是同一个。

1.1K20

JavaScript 常见面试题速查

JavaScript ,基本类型是没有属性和方法,但为了便于操作基本类型调用基本类型属性或方法时 JavaScript 会在后台隐式地将基本类型转换为对象。...因为 JSON 语法是基于 JavaScript ,很容易将 JSONJavaScript 对象弄混,但是应该注意 JSONJavaScript 对象不是一回事,JSON 对象格式更加严格...let 和 const 指令可以声明块作用域 块作用域可以函数创建,也可以一个代码块({})创建 let 和 const 声明变量不会有变量提升,也不可以重复声明 循环中比较适合绑定块作用域...,可以将声明计数器变量限制循环内 作用域链 自己作用域中找不到变量就去父作用域查找,依次向上级作用域查找,直到访问到全局作用域就终止,这一层层关系就是作用域链 作用域链保证对执行环境有权访问所有变量和函数有序访问...JavaScript 和一般面向对象对象语言不同 ES6 之前它没有类概念。

50830

javascript 数组以及对象深拷贝(复制数组或复制对象方法

javascript 数组以及对象深拷贝(复制数组或复制对象方法 前言 js,数组和对象复制如果使用=号来进行复制,那只是浅拷贝。...如下图演示: 如上,arr修改,会影响arr2,这显然绝大多数情况下,并不是我们所需要结果。 因此,数组以及对象深拷贝就是javascript一个基本功了。...万能for循环实现对象深拷贝 很多时候,for循环能够解决大问题。...鉴于评论多人指出,这些是浅拷贝,我本来不想回应,但是提出这个观点的人很多,因此我在这边回应一下。 浅拷贝概念不重复了,上文中已经说明。文章多种方法,均不是浅拷贝,只是是否支持多维数据而已。...而在绝大多数场景下,文中方法是适用。 想要简便支持多维数据深拷贝,可以直接适用 JSON 方式。或适用 lodash 工具实现。

2.8K10

2021了,真的不要再说 Node.js 是一门编程语言了「建议收藏」

所以 JavaScript 浏览器运行时是可以控制浏览器窗口对象和DOM文档对象。...1.2 系统环境变量 系统环境变量是指在操作系统级别上定义变量,变量存储了程序运行时所需要参数。...开发环境操作系统定义 NODE_ENV 变量,为 development,在生产环境操作系统定义 NODE_ENV 变量,为 production。...模块对象中有一个属性 exports,它是一个对象,模块内部需要被导出成员都应该存储在到这个对象。... package.json 文件, 项目依赖和开发依赖要分别记录,项目依赖被记录在 dependencies 对象,开发依赖被记录在 devDependencies ,使开发者可以不同环境中下载不同依赖软件包

2.3K30

收藏 | JavaScript 模块全面剖析

CommonJS 规范,每个 JavaScript 文件就是一个独立模块上下文(module context),在这个上下文中默认创建属性都是私有的。.../node_modules/express')加载两次,也不会重复加载,因为尽管两次参数不同,解析到文件却是同一个。...Node.js 模块加载之后是以单例化运行,并且遵循传递原则:如果是一个对象,就相当于这个对象引用。...这就是circle.js文件只有定义exports对象方法才能被外部调用原因。 以上所描述模块载入机制均定义lib/module.js。...文件查找策略 从文件模块缓存中加载 尽管原生模块与文件模块优先不同,但是优先最高是从文件模块缓存中加载已经存在模块。 从原生模块加载 原生模块优先仅次于文件模块缓存优先

45220

深入浅出 Nodejs( 二 ):Nodejs 文件模块机制

下面代码输出结果是1和2,第一次通过require()方法引入模块后,模块对象即cache变量就会缓存在内存,当第二次引入同样模块时,会从缓存中直接取出,缓存key是模块完整文件路径。...Node实现,正是基于这样一个标识符进行模块查找。...模块标识符Node主要分为以下几类: 核心模块,如http、fs、path等 或..开始相对路径文件模块 以/开始绝对路径模块 非路径形式文件模块,如自定义connect模块 核心模块优先仅次于缓存加载...首先,Node在当前目录下查找package.json,通过JSON.parse()解析出包描述对象,从中取出main属性指定文件名进行定位。如果文件名缺少扩展名,将会进入扩展名分析步骤。...根据不同文件扩展名,Node会调用不同读取方式,如.json文件调用如下: //.json Module.

2.4K20
领券