该迭代迭代,不该迭代的数据,放在里面就浪费了
一开始filter,只是把奇偶进行过滤了
核心部分都是在做计算平方值,可以先把无用数据剔除掉,算的时候,就算有用数据的计算,奇数的平方奇数,偶数的平方偶数
可以先做奇偶过滤
filter的返回值,必须等效true和false,只要算的不是0,就是true
出来的值不是你想要的,相当于写成这样,filter的返回值只有等效true和false
这里只是计算,但是也是无用功,没有把元素输出,只是返回true和false
要拿到最后的平方值,就还需要再后面加map,虽然最终得到结果但是也不太好
可以用forEach试试,加个括号,赋值先做
把所有的值都偏移一个1,代表++,这样写可以,如果使用赋值表达式可能忘记括号,赋值表达式是有值的
forEach可能比较啰嗦
使用filter+map搞定
平方值大于,Math.sqrt() 函数返回一个数的平方根,
这是个常量放外面就可以,不用每次循环重新计算
推荐这种看起来漂亮点
操作数组,还是使用for循环,效率是可以保证的,看似用很多filter,map,高大上,可能还多用了内存空间,或者多迭代了
**python3知道有这样的效率问题,所以有生成器,不用一个很大空间,立即把元素拿来
**
应该先过滤再计算,把不必要的计算放前面剔除
只要遇到数组,就先想到要遍历,要么过滤减少元素,要么map不减少元素,要么forEach
、
对象操作
这样是用类的方法来操作某一个具体实例,拿到了就直接是个列表,立即求值
在python里是item,在java里叫entry,java的键值对称为entry
后两种不推荐使用,实验性的
java的每个键值对称为entries,keys是标准方法可以使用
assign,对某个对象赋值
大括号就是个对象
看看能不能返回什么
返回值就是{},在{}基础上,柔和了obj,生成了一个新的对象obj给你
第一个作为target,第二个作为source
a覆盖了
后面再写一个obj
测一下是否是同一个对象
本意是吧后面的都塞到target里,最后输出的还是它自己
也就是在第一个target里扩充属性,后面的是同名属性在target覆盖
schoolname相当于加进去,url相当于替换掉
translation=null相当于都替换了
assign相当于用一大堆对象创建一个target,一般target写空的{},组合起来形成一个新的对象