簡體   English   中英

JavaScript 使用 .map() 對數組元素進行排序

[英]JavaScript sorting array elements with .map()

我為州做了地圖

array.map(item =>
 <div>
   <p>{item.name}</p>
   <p>{item._status}</p>
 </div>

結果:
1.姓名:他,狀態:真實。
2.姓名:她,狀態:假。
3.姓名:他,狀態:假。
4.姓名:她,狀態:真實。
5. 姓名:他們,狀態:假。

我希望那個虛假的狀態是第一位的,

謝謝你的結果是這樣的:
1.姓名:她,身份:假。
2.姓名:他,狀態:假。
3. 姓名:他們,狀態:假。
4.姓名:他,狀態:真實。
5. 姓名:他們,狀態:真實。

所以你可以先使用.sort()然后使用.map()

請嘗試以下操作:

{
   array.sort((a, b) => (a._status === b._status) ? 0 : a._status ? 1 : -1).map(item =>
     <div>
       <p>{item.name}</p>
       <p>{item._status}</p>
     </div>
}

我希望這有幫助!

排序(首先按 false _status )並使用map

array
  .sort(({ _status }) => (!_status ? -1 : 1))
  .map(item => (
    <div>
      <p>{item.name}</p>
      <p>{item._status}</p>
    </div>
  ));

可以幫助您的示例應用程序。

function App() {
  let array = [
    { id: 1, name: "Her", status: false },
    { id: 2, name: "Him", status: true },
    { id: 3, name: "They", status: true },
    { id: 4, name: "She", status: false },
    { id: 5, name: "He", status: true }
  ];
  let sorted = array.sort((a, b) => b.status - a.status);
  return (
    <div className="App">
      {sorted.map(item => (
        <div key={item.id}>
          <div>
            <span>{item.id}</span>
            <span>{item.name}</span>
          </div>
          <hr />
        </div>
      ))}
    </div>
  );
}

工作示例https://1z7rf.csb.app/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM