简体   繁体   English

如何排序、切片,然后 Map 一个数组?

[英]How do I Sort, Slice, then Map an Array?

Im trying to sort, then slice (show last n elements of array only) and then map this array.我试图排序,然后切片(仅显示数组的最后 n 个元素) ,然后 map 这个数组。

This is the working version (react syntax) currently, with sort and map but without slicing yet.这是目前的工作版本(反应语法),带有排序和 map 但还没有切片。

{Object.keys(dataObj)
                      .sort(
                        (a, b) =>
                          dataObj[a]["order"] -
                          dataObj[b]["order"]
                      )
                      .map((movie, i) => {
                        return (
                          <li key={i}>
                            {movie}
                            {dataObj[movie]["value"]}
                          </li>
                        );
                      })}

How do I continue to slice this, in between sort and map?我如何在 sort 和 map 之间继续切片?
This is what my pseudo code would look like.这就是我的伪代码的样子。

{Object.keys(dataObj)
                      .sort(
                        (a, b) =>
                          dataObj[a]["order"] -
                          dataObj[b]["order"]
                      )
                      .((arr)=>arr.slice(arr.length-10, arr.length+1))
                      .map((movie, i) => {
                        return (
                          <li key={i}>
                            {movie}
                            {dataObj[movie]["value"]}
                          </li>
                        );
                      })}

This obviously does not work but how do I carry on to Slice after the .sort which returns an array?这显然行不通,但是在返回数组的.sort之后如何继续Slice
And then map this sliced array afterwards.然后是 map 这个切片阵列之后。
What syntax do I use?我使用什么语法? Thanks!谢谢!

You could take Array#slice directly with a negative index from the end.您可以从末尾直接使用Array#slice并使用负索引。

Object.keys(dataObj)
    .sort((a, b) => dataObj[a].order - dataObj[b].order)
    .slice(-10)
    .map((movie, i) => {
        return (
            <li key={i}>
               {movie} {dataObj[movie].value }
            </li>
        );
    })

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

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