<分区>
给定一个由正整数和负整数组成的数组,重新排列它,使正整数在一端,负整数在另一端,但保留它们在原始数组中的出现顺序。
例如给定:arr = [2, -12, 4, 46, -20, -1] 答案应该是:arr = [-12, -20, -1, 2, 4, 46]
如何在 JavaScript 中以这种方式排列数组?
谢谢。
<分区>
给定一个由正整数和负整数组成的数组,重新排列它,使正整数在一端,负整数在另一端,但保留它们在原始数组中的出现顺序。
例如给定:arr = [2, -12, 4, 46, -20, -1] 答案应该是:arr = [-12, -20, -1, 2, 4, 46]
如何在 JavaScript 中以这种方式排列数组?
谢谢。
最佳答案
您可以使用 reduce()
创建一个包含正值和负值的对象,然后将这些值连接到一个数组中。
var arr = [2, -12, 4, 46, -20, -1];
var o = arr.reduce(function(r, e) {
return e < 0 ? r.n.push(e) : r.p.push(e), r
}, {p: [], n: []})
var result = [...o.n, ...o.p]
console.log(result)
关于javascript - 给定一个正整数和负整数数组,重新排列它,使一端有正整数,另一端有负整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43711407/