JavaScript代码题--以及一些奇奇怪怪的发现

news2024/11/17 10:43:01

解析 let a={b:10,c:{d:[11,12],e:13}},实现 10+11+12+13 效果

const a={b:10,c:{d:[11,12],e:13}}

function sum(obj) {
  let total = 0;

const value = Object.values(obj)

value.forEach(item=>{

  total += typeof item === 'number' ? item : sum(item)

})
  return total
}

const s = sum(a) // 
console.log('数值之和是', s)
------------------------------------------------------------------

写的时候,是准备再判断一次,递归进来的是不是数组,结果发现打印得到了,和

觉得很奇怪,Object.values直接取数组不报错,或者说可以取到数组值么

所以做了测试

发现,他会返回原数组,而且是浅拷贝(也算是取到了,本身会返回数组)

然后又试试能不能取key呢,所以结果取到了索引,而且是数组内索引是字符串

然后想着Object.values可以实现浅拷贝,那么会不会对多维数组解构平铺呢

结果还是得到了原数组,下面是打印代码,以及结果


const arr = [12,13,15]

const key= Object.keys(arr)

const neArr= Object.values(arr)

neArr[0]=99

console.log(neArr,'---数组使用value');//返回原数组//且是浅拷贝
console.log(key,'---数组使用key');//取到索引且是字符串



const arr2 = [12,13,15,[19,[85]]]

const newArr2 =Object.values(arr2)

arr2[3][0]=88//尝试性这么写,也可以选中下表3的元素---且把19改为88 //任然是浅拷贝

console.log(newArr2,'----newArr2打印结果');

 控制台打印结果

 

 const arr2 = [12, 13, 15, [19, [85]]]

    const newArr2 = Object.values(arr2)

    const newArrKey = Object.keys(arr2)

    arr2[3][0] = 88//尝试性这么写,也可以选中下表3的元素---且把19改为88 //任然是浅拷贝

    console.log(newArr2, '----newArr2打印结果');

    console.log(newArr2, '----newArrKey打印结果');//这个返回值就出乎意料----

    //看来的看看官网了----或哪位大神不吝赐教下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/136454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java家教系统家教网站家教兼职系统

简介: 用户可以注册成为学员也可以是教员。教员发布家教信息,学员根据自己的要求查找符合自己的教员。学员预约教员的某一天去家教,教员可以在个人中心里查看,是否接受该预约。在教员接受或拒绝之前,学员随时可以取消…

数据库,计算机网络、操作系统刷题笔记23

数据库,计算机网络、操作系统刷题笔记23 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle…

基于 Vue 制作一个猜拳小游戏

目录前言:项目效果展示:对应素材:代码实现思路:实现代码:总结:前言: 在工作学习之余玩一会游戏既能带来快乐,还能缓解生活压力,跟随此文一起制作一个小游戏吧。 描述&…

【2042. 检查句子中的数字是否递增】

来源:力扣(LeetCode) 描述: 句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格。每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个…

ORA-00600 kcratr_nab_less_than_odr 问题处理

问题:ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [196495], [39399], [39460], [], [], [], [], [], [], []导致原因:可能是由于服务器宕机,控制文件的缺失,或者在线日志文件在实例恢复时不完整1、数据库未…

5G边缘计算网关助力5G工业物联网智能化建设

5G边缘计算,凭借高带宽、高可靠、低时延、移动性等特性,推动工业生产物联网发展趋势,实现工业更快、更精准通信及数据共享。边缘计算网关下5G工业物联网远程感知生产一线,工控数字化、自动化、智能化,降低人物力资源成…

LeetCode 2042. 检查句子中的数字是否递增

【LetMeFly】2042.检查句子中的数字是否递增 力扣题目链接:https://leetcode.cn/problems/check-if-numbers-are-ascending-in-a-sentence/ 句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格。每个 tok…

【计算机体系结构】指令集并行(ILP)动态调度算法:Tomasulo实现代码(Tomasulo Algorithm Implementation)

Tomasulo Algorithm Implementation (本文章仅提供算法实现过程,具体算法思想请查阅教科书) 如果觉得这篇文章有用,请记得点个赞并收藏哦! 1.Introduction Tomasulo算法用于指令的动态调度,允许乱序执行…

C C++内存对齐以及特殊类的大小

目录C语言内存对齐现象内存对齐规则为什么存在内存对齐如果struct or class中存在成员函数时的大小空类大小为1Cclass存在虚函数时的大小C语言 内存对齐现象 C语言中结构体的大小往往不是结构体中各种数据类型的加和,因为存在内存对齐; struct S {double d;//8字…

Linux常用系统日志

文章目录一 常用系统日志二 系统日志优先级三 其他日志文件一 常用系统日志 日志文件用途/var/log/messages记录大多数系统日志信息,包括启动、IO错误、网络和程序等问题/var/log/secure记录安全和身份验证等相关消息和错误/var/logrsyslog将所有日志文件写入到该目…

Nacos 漏洞利用

Nacos 漏洞利用 1.漏洞描述: Alibaba Nacos是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,可以快速实现动态…

ASP.NET企业智能办公OA系统源码带文档【源码免费分享】

ASP.NET企业智能办公OA系统源码带文档 需要源码学习可私信我获取! 本系统特色功能: 1:自定义工作流程,系统所有参数可自定义配置,支持多分公司、多部门架构 2:采用三层结构设计软件,系统扩容性…

vivo 实时计算平台建设实践

作者:vivo 互联网实时计算团队- Chen Tao 本文根据“2022 vivo开发者大会"现场演讲内容整理而成。 vivo 实时计算平台是 vivo 实时团队基于 Apache Flink 计算引擎自研的覆盖实时流数据接入、开发、部署、运维和运营全流程的一站式数据建设与治理平台。 一、v…

【云边有个小卖部】阅读笔记

童年就像童话,这是他们在童话里第一次相遇。 那么热的夏天,少年的后背被女孩的悲伤烫出一个洞,一直贯穿到心脏。 刘十三被欺负得最惨,却想保护凶巴巴的程霜。 每当她笑的时候,就让他想起夏天灌木丛里的萤火虫&#xff…

2022年专业连锁行业研究报告

第一章 行业概况 专业连锁经营是一种商业组织形式和经营制度,是指经营同类商品或服务的若干个企业,以一定的形式组成一个联合体,在整体规划下进行专业化分工,并在分工基础上实施集中化管理,把独立的经营活动组合成整体…

力扣sql入门篇(七)

力扣sql入门篇(七) 1 查询近30天用户活跃数 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 #注意因为between是两端都包含,仅统计30天,因而间隔天数写成29天 SELECT activity_date day,count(distinct user_id) active_users FROM Activity WHERE a…

使用Windbg分析多线程临界区死锁问题分享

目录 1、多线程死锁场景及多线程锁的类型 1.1、发生死锁的场景说明 1.2、锁的类型 2、问题实例说明 3、使用Windbg初步分析 4、进一步分析死锁 4.1、使用!locks命令查看临界区对象信息 4.2、通过占用临界区锁的线程id找到目标线程 4.3、如何将!locks命令打印出来的临界…

# 分布式理论协议与算法 第二弹 ACID原则

ACID 原则是在 1970年 被 Jim Gray 定义,用以表示事务操作:一个事务是指对数据库状态进行改变的一系列操作变成一个单个序列逻辑元操作,数据库一般在启动时会提供事务机制,包括事务启动 停止 取消或回滚。 但是上述事务机制并不真…

(1分钟)速通ikdtree

Ikdtree算法来自fast-lio2 其中i是incremental的缩写,表示增量的kdtree。 ​ Ikdtree算法来自fast-lio2 其中i是incremental的缩写,表示增量的kdtree。 ​ Ikdtree算法来自fast-lio2 其中i是incremental的缩写,表示增量的kdtree。 ​ 编辑…

性能成本难两全?OpenMLDB 实时计算双存储引擎让你不必纠结(附测评报告)

内存和磁盘的双存储引擎架构 1.1 使用场景描述 OpenMLDB 的线上服务部分为了满足不同的性能和成本需求,提供了两种分别基于内存和磁盘的存储引擎。关于这两种存储引擎的使用考量,和推荐匹配场景,见如下表。 [外链图片转存失败,源站可能有防…