首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何只旋转正数

问如何只旋转正数
EN

Stack Overflow用户
提问于 2022-10-31 04:40:36
回答 1查看 51关注 0票数 0

我想旋转数组。它能用我的密码。但是我只想旋转positive数。

怎么弄到?

以下是我的尝试:

代码语言:javascript
复制
const ar = [1,2, -8, 3,4,5,-3,-44];

for(let i = 0; i< 3; i++){
  ar.unshift(ar.pop());
}

console.log(ar);

我得到的结果是:[5, -3, -44, 1, 2, -8, 3, 4];

但是希望得到的结果是:[3,4,-8, 5, 1, 2, -3, -44,],所以只有positive数可以旋转。但是,如果有负数,就不应该触及这个数字。

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-31 04:47:11

一种方法是只取正数,然后将其切片并重新组合为“旋转”,然后将正数替换为旋转数组中的元素,然后映射回原始数组。

​

代码语言:javascript
复制
const arr = [1, 2, -8, 3, 4, 5, -3, -44];
const positives = arr.filter(num => num >= 0);
// Rotate positives by the desired amount
const rotated = positives.slice(2).concat(positives.slice(0, 2));
const output = arr.map(num => num >= 0 ? rotated.shift() : num);
console.log(output);

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74258800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档