javascript - 给定一个正整数和负整数数组,重新排列它,使一端有正整数,另一端有负整数

标签 javascript arrays algorithm

给定一个由正整数和负整数组成的数组,重新排列它,使正整数在一端,负整数在另一端,但保留它们在原始数组中的出现顺序。

例如给定: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/

相关文章:

相当于 Java 的 matcher.matches 的 Javascript

javascript - 页面刷新 JavaScript

java - 将 pojo 类列表转换为 Jdom 树?

java - 破解哈希算法

javascript - 为什么音频不能在移动浏览器上播放

javascript - 单击时平滑地扩展输入字段宽度

java - 用数组创建了多少个对象? [ java ]

javascript - 通过主题标签拆分字符串并使用 jQuery 保存到数组中?

java - 访问 JTextAreas 数组时出现 NullPointerException

algorithm - 我什么时候应该重新哈希整个哈希表?