JavaScript代码题--以及一些奇奇怪怪的发现
解析 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]=99console.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打印结果');//这个返回值就出乎意料----
//看来的看看官网了----或哪位大神不吝赐教下---------打印错误
结果仍然是取得下标
JavaScript代码题--以及一些奇奇怪怪的发现相关推荐
- CTF MISC在我眼里各种奇奇怪怪的题学习思路总结(持续更新)
系列文章目录 MISC:图片隐写简单题学习思路总结(持续更新) CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.二维码 1.1 QR码 1.2 Maxicode码 ...
- react中如何注释代码_学习在您的React / JavaScript代码中发现红旗?
react中如何注释代码 by Donavon West 由Donavon West 学习在您的React / JavaScript代码中发现红旗? (Learn to spot red flags ...
- 《JavaScript 秘密花园》—一些奇奇怪怪的知识
对象 toString:所有对象都有toString()方法,基本类型除null和undefined外也有 2.toString() 语法错误因为会把 . 当成数字运算,解决办法 2..toStrin ...
- JS 逆向的时候 Python 如何调用 JavaScript 代码?「建议收藏哦!」
你好,我是悦创.关注公众号:AI悦创,抢先阅读优质文章. 公众号原文:https://mp.weixin.qq.com/s/PYEiSMgP2LT0DmcHX08PCw 博客原文:https://ww ...
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
才华横溢的Stoyan Stefanov,在他写的由O'Reilly初版的新书<JavaScript Patterns>(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会 ...
- C. 奇奇怪怪的魔法阵(未搞懂)
C. 奇奇怪怪的魔法阵 题意: n个点m条边,定义集合S为独立集,当且仅当任意x,y∈S,x与y之间没有边.空集也是独立集 现在对于每一个点的集合T,有多少子集为独立集 设N=0,1,-,n-1,AT ...
- 第一百一十八期:运行 JavaScript 代码片段的 20 种工具
运行 JavaScript 代码片段的 20 种工具 前端日常开发中,我们使用喜爱的 IDE 调试 JavaScript 代码,比如我喜欢的代码编辑器有两个,Sublime Text 3 和 VS C ...
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点(转)
才华横溢的Stoyan Stefanov,在他写的由O'Reilly初版的新书<JavaScript Patterns>(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会 ...
- vue 代码快捷键_你可能不知道的19种运行JavaScript代码工具
前端日常开发中,我们使用喜爱的 IDE 调试 JavaScript 代码,比如我喜欢的代码编辑器有两个,Sublime Text 3 和 VS Code,前几年还使用过 Atom,偶尔我们会遇到临时需 ...
最新文章
- 简书mysql配置_MySQL安装配置
- 分布式文件系统:HDFS
- 横河川仪压力变送器调零_YOKOGAWA/横河EJX110A差压变送器的性能误差和精度介绍!...
- 没装Sql Server 2005 Express就不能使用webpart控件?
- 2016 Multi-University Training Contest 4 Bubble Sort(树状数组模板)
- 关于fragment backState的原理
- [ZJOI2010]网络扩容[网络流24题]
- 怎么查看linux服务器有cpu
- java中volatile关键字的含义_Java里volatile关键字是什么意思
- tmap | R语言中专门绘制地图的工具包
- linux c++模拟简易网络爬虫
- AlexNet原理及tensorflow实现
- Java简单小项目---网上订餐系统
- PFC2D学习笔记——geometry的使用
- Shadowsocks错误:端口已被占用1090的错误解决办法
- 1.5 密码学应用PKI体系
- 非线性最小二乘法曲线拟合
- CSS元素总结及HTML布局
- u盘UEFI模式安装Windows10和ubuntu18.04双系统
- 拼题A 第一题 HMY
热门文章
- repo代码减少git数据库下载
- 9.3.5 幻方 (20分)
- 如何使用VBA从Internet下载文件
- 京东数科开源区块链底层引擎JD Chain,区块链已成其第四大核心技术
- macbookair安装linux
- GPU百科全书(1)方程与几何
- @value(“${}“)和@value(“#{}“)的区别
- 小甲鱼Python第二十三讲、第二十四讲(递归-这帮小兔崽子、汉诺塔)
- 在线编辑word文档代码
- 若不用计算机tan35 怎么算,三角函数计算器-三角函数计算器