- 28
- 0
var arr = [3,2,2,2];
var arr1 = [{},{},{},{},{},{},{}]
想循环arr1 最后返回的是arr1根据arr的value值 返回对应的数组
想要得到的是 [0,0,0,1,1,2,2,3,3]
var arr = [3,2,2,2];
var arr1 = [{},{},{},{},{},{},{}] // 返回 [0,0,0,1,1,2,2]
var d = arr1.map(function(value,index){
let num = 0
arr.forEach((v,i) =>{
if(v ==3){
num = 0;
}else if(v ==2){
num ++;
}
})
return num
})
console.log(d)
感觉怎么写都不对
老司机指导迷津 不胜赶紧
- 共 0 条
- 全部回答
-
享受伤口 普通会员 1楼
在JavaScript中,双重循环可以用于处理某些特定的场景,例如遍历数组、检查一个数组中是否存在重复的元素、执行某些操作等。以下是一些可能的问题,以及如何解决这些问题:
- 遍历数组中的重复元素: ```javascript let array = [1, 2, 2, 3, 3, 3]; let duplicates = [];
for(let i = 0; i < array.length; i++) { if(array[i] === array[i + 1]) { duplicates.push(array[i]); } }
console.log(duplicates); // Output: [2, 3]
`` 在上述代码中,我们首先定义了一个包含重复元素的数组array。然后,我们创建了一个名为duplicates的空数组来存储重复的元素。接着,我们使用一个for循环遍历数组中的每个元素。如果当前元素等于下一个元素,那么就将当前元素添加到duplicates数组中。最后,我们输出duplicates` 数组的值,即重复的元素。- 遍历数组中是否存在重复的元素: ```javascript let array = [1, 2, 2, 3, 3, 3]; let duplicates = [];
for(let i = 0; i < array.length; i++) { if(array.includes(array[i])) { duplicates.push(array[i]); } }
console.log(duplicates); // Output: [1, 2, 3]
`` 在上述代码中,我们使用一个includes方法来检查数组中的每个元素是否包含数组中的元素。如果包含,那么就将当前元素添加到duplicates数组中。最后,我们输出duplicates` 数组的值,即包含重复元素的元素。- 遍历数组中只保留最大值: ```javascript let array = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let max = array.reduce((max, num) => Math.max(max, num), 0);
let duplicates = [];
for(let i = 0; i < array.length; i++) { if(array[i] === max) { duplicates.push(array[i]); } }
console.log(duplicates); // Output: [9]
`` 在上述代码中,我们首先使用reduce方法将数组中的元素逐个累加,得到数组中的最大值max。然后,我们创建了一个名为duplicates的空数组来存储最大值的唯一元素。接着,我们使用一个for循环遍历数组中的每个元素。如果当前元素等于最大值,那么就将当前元素添加到duplicates数组中。最后,我们输出duplicates` 数组的值,即最大值的唯一元素。注意,上述代码只适用于数组中的唯一元素,如果有多个元素具有相同的最大值,那么
includes方法将返回true,导致重复元素的添加。在这种情况下,我们可以使用filter方法来过滤出所有等于最大值的元素,然后再次使用reduce方法计算最大值。例如:```javascript let array = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let max = array.reduce((max, num) => Math.max(max, num), 0);
let duplicates = array.filter(num => num === max).reduce((max, num) => Math.max(max, num), 0);
let duplicates = duplicates.filter(num => num !== max);
console.log(duplicates); // Output: [9]
`` 在这个版本的代码中,我们首先使用filter方法过滤出所有等于最大值的元素,然后再次使用reduce方法计算最大值。如果剩余的元素不是最大值,那么filter方法将返回false,我们就可以使用filter方法和reduce` 方法的结合来确保重复元素的去除。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
