sjmcsy3 years ago今天学习非常困难,帮我看下什么原因这是我今天学JavaScript的数组笔记,我完全做不出习题,重复看了好几遍,也做不出来,看了答案也看不懂,或许需要再看第三遍? 这是数组教学网页,我看这个学的,然后做下面的习题就卡住了,哈哈,请专家朋友们会诊,帮我分析下是习题难度太大,还是我学得不认真呀! javascript201 views50Share
我帮你修改一下你的笔记,我认为你的笔记不够严谨,首先是一些markdown的用法上面,其次是知识点应该和感想分离(不过也因人而异),这样下次看容易看懂,最后知识点的结构应该规整
不过我不喜欢那种规范的中英文混排,就是在中文和英文之间加空格,所以就都没有加
字符串和数组的基本操作
分割字符串
split()
能将数组的内容根据参数分割,最后返回一个字符串数组myDate.split(',')
把字符串myData
的内容按,
分割,返回一个字符串数组,即['Manchester', 'London', 'Liverpool', 'Birmingham', 'Leeds', 'Carlisle']
拼接数组为字符串
join()
能将数组的内容根据参数一个一个地拼接起来,最后返回一个字符串myArray.join(',')
将myArray
数组的值按,
拼接,最后返回一个拼接后的字符串,即'Manchester,London,Liverpool,Birmingham,Leeds, Carlisle'
toString()
也可以将数组变回字符串,而且不需要参数,其他类型的变量也可以使用但是
join()
可以通过传入不同符号的参数,拼接为不同间隔符号的字符串数组末尾的操作
push()
方法在数组的末尾添加给定的参数,同时返回数组的总长度,若参数为空,那么只返回参数,和访问length
的作用一样pop()
是把最后的一个数组的值删除数组开头的操作
unshift()
和shift()
跟push()
和pop()
的用法一样,不过是在数组的开头操作而
shift()
不用加入参数,直接会将数组开头的第一个值删除习题
习题1
答案
正确答案如下:
输出结果:
Underpants — 6.99 Socks — 5.99 T-shirt — 14.99 Trousers — 31.99 Shoes — 23.99 Total: 83.95
解析
这里将
products[i]
作为字符串主体来使用split(':')
方法分成两个字符串来成为不同的部分,一部分是名字,一部分是价格var i = 0
(一个for仅执行一次)定义了变量i,初值为0,然后运行判断i < products.length
(执行多次),是否满足条件,在运行完循环内的代码后,再运行i++
(执行多次),再进入一个循环[i]
是哪来的吗,为什么这么写?[i]
并不应该单独看,products[i]
通过[]
运算符获得products
数组中索引(从0开始计算)为i
的值,即products
中的第i个元素,products[0]
为第0个元素,以此类推price
就能把这数组的所有价格都加起来呢?用的就是这个循环吗?total
变量在开头就赋值了0,通过每一次的循环从字符串中获取每一项的价格存入price
,再通过+=
累加price
的值price
值加入total
中,所以这个过程可以看作迭代重点
Number
将字符串变成数字+=
运算符的作用是直接给左边的变量加上右边的变量,a+=b
等价于a=a+b
感想
好吧,我根本做不出来这个习题。
将那一串字符串写成数组我会,并且做成了。
将循环也写成了,这个也会。
第三个问题,让我把数组用一行代码分成两个部分,一部分是名字,一部分是价格。
这个我不会了,想了半天,没有头绪。看了之前的有用的字符串方法也不知道怎么办, 上一次就是卡在这里了,今天又是。
看了答案,原来是我没有学过这个方法。
看了之前的教学内容,我觉得这个应该是有个bug,这从来没有教过的内容,突然提起,让人百思不解
我还不理解什么是循环。
变量名起的也很有意思,叫subArray,副数组。
而且这个应该是三行代码,问题里却说用一行代码,非常误导。第一行代码是把数组里的字符串分开成两部分。第二行代码的意思是给name赋值为副数组的前一部分,第三行代码是给价格赋值为副数组的第二部分为数字。
Number这个我没有记住
+= 这个意思我完全忘记了,看着答案出神不知道什么意思。看了看之前的笔记,记着+= 对应 = x + y。
ok,我花了十五分钟时间来搞明白,什么是赋值运算,这是几天前看过的文章内容,完全忘光了。
今天的学习让人头大
这个习题真的让人莫名其妙,难度增加的太多了,无法理解。请帮我看下是不是真的对新手太不友好了,习题做起来太痛苦了,完不成,理解不了。