解析 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代码题--以及一些奇奇怪怪的发现相关推荐

  1. CTF MISC在我眼里各种奇奇怪怪的题学习思路总结(持续更新)

    系列文章目录 MISC:图片隐写简单题学习思路总结(持续更新) CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.二维码 1.1 QR码 1.2 Maxicode码 ...

  2. react中如何注释代码_学习在您的React / JavaScript代码中发现红旗?

    react中如何注释代码 by Donavon West 由Donavon West 学习在您的React / JavaScript代码中发现红旗? (Learn to spot red flags ...

  3. 《JavaScript 秘密花园》—一些奇奇怪怪的知识

    对象 toString:所有对象都有toString()方法,基本类型除null和undefined外也有 2.toString() 语法错误因为会把 . 当成数字运算,解决办法 2..toStrin ...

  4. JS 逆向的时候 Python 如何调用 JavaScript 代码?「建议收藏哦!」

    你好,我是悦创.关注公众号:AI悦创,抢先阅读优质文章. 公众号原文:https://mp.weixin.qq.com/s/PYEiSMgP2LT0DmcHX08PCw 博客原文:https://ww ...

  5. 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点

    才华横溢的Stoyan Stefanov,在他写的由O'Reilly初版的新书<JavaScript Patterns>(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会 ...

  6. C. 奇奇怪怪的魔法阵(未搞懂)

    C. 奇奇怪怪的魔法阵 题意: n个点m条边,定义集合S为独立集,当且仅当任意x,y∈S,x与y之间没有边.空集也是独立集 现在对于每一个点的集合T,有多少子集为独立集 设N=0,1,-,n-1,AT ...

  7. 第一百一十八期:运行 JavaScript 代码片段的 20 种工具

    运行 JavaScript 代码片段的 20 种工具 前端日常开发中,我们使用喜爱的 IDE 调试 JavaScript 代码,比如我喜欢的代码编辑器有两个,Sublime Text 3 和 VS C ...

  8. 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点(转)

    才华横溢的Stoyan Stefanov,在他写的由O'Reilly初版的新书<JavaScript Patterns>(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会 ...

  9. vue 代码快捷键_你可能不知道的19种运行JavaScript代码工具

    前端日常开发中,我们使用喜爱的 IDE 调试 JavaScript 代码,比如我喜欢的代码编辑器有两个,Sublime Text 3 和 VS Code,前几年还使用过 Atom,偶尔我们会遇到临时需 ...

最新文章

  1. 简书mysql配置_MySQL安装配置
  2. 分布式文件系统:HDFS
  3. 横河川仪压力变送器调零_YOKOGAWA/横河EJX110A差压变送器的性能误差和精度介绍!...
  4. 没装Sql Server 2005 Express就不能使用webpart控件?
  5. 2016 Multi-University Training Contest 4 Bubble Sort(树状数组模板)
  6. 关于fragment backState的原理
  7. [ZJOI2010]网络扩容[网络流24题]
  8. 怎么查看linux服务器有cpu
  9. java中volatile关键字的含义_Java里volatile关键字是什么意思
  10. tmap | R语言中专门绘制地图的工具包
  11. linux c++模拟简易网络爬虫
  12. AlexNet原理及tensorflow实现
  13. Java简单小项目---网上订餐系统
  14. PFC2D学习笔记——geometry的使用
  15. Shadowsocks错误:端口已被占用1090的错误解决办法
  16. 1.5 密码学应用PKI体系
  17. 非线性最小二乘法曲线拟合
  18. CSS元素总结及HTML布局
  19. u盘UEFI模式安装Windows10和ubuntu18.04双系统
  20. 拼题A 第一题 HMY

热门文章

  1. repo代码减少git数据库下载
  2. 9.3.5 幻方 (20分)
  3. 如何使用VBA从Internet下载文件
  4. 京东数科开源区块链底层引擎JD Chain,区块链已成其第四大核心技术
  5. macbookair安装linux
  6. GPU百科全书(1)方程与几何
  7. @value(“${}“)和@value(“#{}“)的区别
  8. 小甲鱼Python第二十三讲、第二十四讲(递归-这帮小兔崽子、汉诺塔)
  9. 在线编辑word文档代码
  10. 若不用计算机tan35 怎么算,三角函数计算器-三角函数计算器