首页 新闻 会员 周边 捐助

js数组问题

0
悬赏园豆:120 [已解决问题] 解决于 2020-10-13 15:59

请问:数组[1,2,3,4,5,6,7,8,9]变成[1,4,7],[2,5,8],[3,6,9]三个数组怎么实现呀

js
大云之下的主页 大云之下 | 初学一级 | 园豆:14
提问于:2020-10-13 15:32

@dudu

大云之下 4年前
< >
分享
最佳答案
0

一定是連續數列嗎

收获园豆:70
RosonJ | 老鸟四级 |园豆:4910 | 2020-10-13 15:47

是的

大云之下 | 园豆:14 (初学一级) | 2020-10-13 15:47

@大云之下:
JS的寫法

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var arr1 = [];
var arr2 = [];
var arr3 = [];

for (var i = 0; i < arr.length; i++) {
    if (arr[i] % 3 == 1) {
        arr1.push(arr[i]);
    } else if (arr[i] % 3 == 2) {
        arr2.push(arr[i]);
    } else {
        arr3.push(arr[i]);
    }
}
RosonJ | 园豆:4910 (老鸟四级) | 2020-10-13 15:53

@RosonJ: 可以可以,,,

大云之下 | 园豆:14 (初学一级) | 2020-10-13 15:58

@RosonJ: 阿,一会儿没看,让你抢先了.....

会长 | 园豆:12463 (专家六级) | 2020-10-13 16:39

@会长:
好多人比我快,我是運氣好哈哈

RosonJ | 园豆:4910 (老鸟四级) | 2020-10-13 16:41
其他回答(5)
0

变化规则是什么?

收获园豆:10
会长 | 园豆:12463 (专家六级) | 2020-10-13 15:36

规律就是每三个 的第一个放到 第一个数组,第二个放到第二个数组 第三个放到第三个数组

支持(0) 反对(0) 大云之下 | 园豆:14 (初学一级) | 2020-10-13 15:37

是147,258,369 我好像写错了

支持(0) 反对(0) 大云之下 | 园豆:14 (初学一级) | 2020-10-13 15:38
0

什么算法?不是 147,258,369?

收获园豆:10
顾晓北 | 园豆:10898 (专家六级) | 2020-10-13 15:37

是147,258,369 我好像写错了

支持(0) 反对(0) 大云之下 | 园豆:14 (初学一级) | 2020-10-13 15:38

所以怎么实现?

支持(0) 反对(0) 大云之下 | 园豆:14 (初学一级) | 2020-10-13 15:39

@大云之下: 这不是很简单?什么语言?

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2020-10-13 15:56

@顾晓北: 没啥语音js就,

支持(0) 反对(0) 大云之下 | 园豆:14 (初学一级) | 2020-10-13 15:56
1

除3余数相等的放在一起??

收获园豆:10
sodak | 园豆:214 (菜鸟二级) | 2020-10-13 15:43
0

最简单的就是之间循环啊,代码思路进入下,可能语法上会有点问题,好长时间没写js了
let length = length(arr);
for(i=0; i <= length; i = i + 3) {
if(arr.hasOwnProperty(key) ) arr1.push(arr[i]);
if(arr.hasOwnProperty(key) ) arr2.push(arr[i+1]);
if(arr.hasOwnProperty(key) ) arr3.push(arr[i+2]);
}

收获园豆:10
阅尽三千 | 园豆:332 (菜鸟二级) | 2020-10-13 15:50

我看看,感谢感谢

支持(0) 反对(0) 大云之下 | 园豆:14 (初学一级) | 2020-10-13 15:51
0

var arr = [1,2,3,4,5,6,7,8,9]
var o = {}
arr.every(function(item,i){
(o[i%3] = o[i%3]||[]).push(item)
return true
})

收获园豆:10
灰灰世界 | 园豆:203 (菜鸟二级) | 2020-10-13 15:55

再简化一下就是这样
var arr = [1,2,3,4,5,6,7,8,9]
var o = {}
arr.every((item,i) =>(o[i%3] = o[i%3]||[]).push(item))

支持(1) 反对(0) 灰灰世界 | 园豆:203 (菜鸟二级) | 2020-10-13 15:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册