老师,有一道题想请教一下。

老师,有一道题想请教一下。

1
2
3
4
5
6
7
8
9
10
var test = [12, 929, 11, 3, 199, 1000, 7, 1, 24, 37, 4,
    19, 300, 3775, 299, 36, 209, 148, 169, 299,
    6, 109, 20, 58, 139, 59, 3, 1, 139
];
test.forEach(function(n){
    if(n%3===0){
        test[test.indexOf(n)]+=100;
    }
});
console.log(test);

以上是正确答案。

题目要求使用数组的 forEach() 方法 循环访问以下数组,如果某个值可以被 3 整除,则向这些值加 100。向控制台中输出 test 数组。

var test = [13, 929, 11, 9, 199, 1000, 7, 1, 399, 37, 4, 19, 1938, 3775, 299, 58, 209, 48, 69, 299, 5, 9, 20, 58, 39, 59, 79,29, 1, 39, 111, 7, 9, 29, 1, 58, 28, 599];

下面是我的疑问:

为什么要通过这样的方式(test[test.indexOf(n)]+=100;)来给符合条件的元素加100,我直接n+=100不行吗?n不久是代表的数组中的元素吗?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕夭夭 2018-10-08 11:31:58

在问题描述中的代码中 , n是代表数组中的每个元素 , 但是我们只拿到这个元素是不够的啊 ,我们要获取符合条件的这个元素在数组中的位置 , 从而能够在数组中找到这个元素并修改它 . indexOf()可以查到并返回符合条件的元素的位置 , test.indexOf(n)返回的就是这个元素的索引 ,使用数组下标的方式就能拿到数组中这个元素并修改它 . 

希望解答了你的疑惑 , 祝学习愉快 ,望采纳

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码