如何无需单独if语句,简化实现JS数组值按规则分配给三个空数组
实现方案
你提供的参考代码存在逻辑笔误,下述实现均基于「将arrayD的元素按规则分配给arrayA、arrayB、arrayC」的核心需求编写,无需编写独立IF语句。
方案1:完全匹配参考逻辑(仅处理前3个元素)
通过slice(0,3)自动控制处理范围:arrayD长度不足3时自动取全部元素,长度超过3时仅取前3个,完全替代原有的独立IF判断,同时用forEach简化手动for循环写法:
const arrayA = []; const arrayB = []; const arrayC = []; const arrays = [arrayA, arrayB, arrayC]; const arrayD = ['some', 'values', 'here']; arrayD.slice(0, 3).forEach((val, idx) => arrays[idx].push(val));
方案2:支持任意长度循环分配
如果需要arrayD长度超过3时,继续按A→B→C的顺序循环分配元素,可以用取模运算实现,同样不需要IF判断:
const arrayA = []; const arrayB = []; const arrayC = []; const arrays = [arrayA, arrayB, arrayC]; const arrayD = ['some', 'values', 'here', 'more', 'values']; arrayD.forEach((val, idx) => arrays[idx % 3].push(val));
- 逻辑说明:
idx % 3会自动把任意索引映射到0/1/2三个值,对应三个目标数组的下标,自动完成循环分配。
内容的提问来源于stack exchange,提问作者Fergoso
相关产品推荐
相关产品推荐

