繁体   English   中英

如何返回数组中的每个 +2 项?

[英]How to return every +2 item in array?

我有一个对象数组:

const routes = [
{ id: 1, path: "/", element: <HomePage /> },
{ id: 2, path: "/about", element: <AboutPage /> },
{ id: 3, path: "/review", element: <ReviewPage /> },
];

我必须通过 id 遍历数组并获取每个 +2 项。 因此,通过解释,第一项将是: id: 1 然后我们执行 +2 并且下一项是 id:3

第三项:id:2

第四项:id:1

第五项:id:3等...

那将如何实施?

我认为您将需要使用一段时间,直到您想要的条件并采用 i = 1 之类的值(例如)。 接下来,您应该获取元素 id = i 并添加到 i + 2。完成后,您只需要验证是否 (i > 3) 在这种情况下您设置了 i = i - 3。代码应该可以工作,这是一个示例:

const routes = [
{ id: 1, path: "/", element: <HomePage /> },
{ id: 2, path: "/about", element: <AboutPage /> },
{ id: 3, path: "/review", element: <ReviewPage /> },
];

i = 1
while (True) {
    console.log(routes[i]);
    i += 2;
    if (i > 3) { i -= 3}
}

在这种情况下,您可以使用闭包

 const routes = [{id:1,path:"/",element:"<HomePage />"},{id:2,path:"/about",element:"<AboutPage />" },{ id:3,path:"/review",element:"<ReviewPage />" }]; const makeNext = (size, step = 2) => { let i = size - step; return () => { i += step; if (i >= size) i -= size; return i; } }; const nextId = makeNext(routes.length); console.log(routes[nextId()]); console.log(routes[nextId()]); console.log(routes[nextId()]); console.log(routes[nextId()]); console.log(routes[nextId()]);
 .as-console-wrapper { max-height: 100%;important: top: 0 }

我相信这可能对您有所帮助。

https://jsfiddle.net/codyrowirthpaige/gr3cy4ek/

 const arr = [ 1,2,3,4 ]; // return every second item in the array function everySecond(arr) { var newArr = []; for (var i = 0; i < arr.length; i += 2) { newArr.push(arr[i]); } console.log(newArr) return newArr; } everySecond(arr);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM