面试专题:如何对对象的部分属性按序访问

2024-08-28 01:20

本文主要是介绍面试专题:如何对对象的部分属性按序访问,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编程题:
如下所示,对象有N个属性,需要对其中的key1 - key5属性按序优先显示,其他属性则按原序显示

 // 输入const obj = {...key10: 'key10',key4: 'key4',key5: 'key5',key2: 'key2',key1: 'key1',key3: 'key3',...}// 输出const obj = {key1: 'key1',key2: 'key2',key3: 'key3',key4: 'key4',key5: 'key5',key10: 'key10',...
}

实现1: 直接赋值

function sortedObj0(){const orderKey = ['key1', 'key2', 'key3', 'key4', 'key5'];const sortedDetail = {};orderKey.forEach(key => {if (obj[key]) {sortedDetail[key] = obj[key];}});Object.keys(obj).forEach(key => {if (!sortedDetail[key]) {sortedDetail[key] = obj[key];}});console.log(sortedDetail)return sortedDetail
}

实现2:使用解构语法

function sortedObj1(){const {key1, key2, key3, key4, key5, ...rest} = obj;const result = {key1,key2,key3,key4,key5,...rest}console.log(result)return result;
}

实现3: 使用数据排序

function sortedObj2() {const orderKey = ['key1', 'key2', 'key3', 'key4', 'key5'];const orderObjKey = Object.keys(obj).sort((a,b) => {let indexA = orderKey.indexOf(a);let indexB = orderKey.indexOf(b);if (indexA === -1) indexA = Number.MAX_SAFE_INTEGER;if (indexB === -1) indexB = Number.MAX_SAFE_INTEGER;return indexA - indexB})const resultObj = {};orderObjKey.forEach(key => {resultObj[key] = obj[key]})console.log(resultObj)return resultObj;
}

这篇关于面试专题:如何对对象的部分属性按序访问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113324

相关文章

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3