javascript - React js 中的数组重新排列

标签 javascript arrays reactjs sorting

我有一些要列出的数组对象。

基于列表,如果用户单击对象中的特定列表项,

需要首先显示特定的点击列表项。

var list = [
 {
  tradeareaid: "80"
  tradeareaname: "test1"
 },
 { 
  tradeareaid: "81"
  tradeareaname: "test2"
 },
 { 
  tradeareaid: "82"
  tradeareaname: "test3"
 },
 { 
  tradeareaid: "83"
  tradeareaname: "test4"
 },
 { 
  tradeareaid: "84"
  tradeareaname: "test5"
 },
]

在列表中如果我选择了贸易区域83意味着我需要如下列表

var list = [
 { 
  tradeareaid: "83"
  tradeareaname: "test4"
 },
 {
  tradeareaid: "80"
  tradeareaname: "test1"
 },
 { 
  tradeareaid: "81"
  tradeareaname: "test2"
 },
 { 
  tradeareaid: "82"
  tradeareaname: "test3"
 },
 { 
  tradeareaid: "84"
  tradeareaname: "test5"
 },
]

如何实现这一目标?

最佳答案

您可以获取被单击项目的 tradeareaid 并使用 getSortedList 函数(在单击事件处理程序中)来获取新列表,如下所示:

var list = [
 {
  tradeareaid: "80",
  tradeareaname: "test1"
 },
 { 
  tradeareaid: "81",
  tradeareaname: "test2"
 },
 { 
  tradeareaid: "82",
  tradeareaname: "test3"
 },
 { 
  tradeareaid: "83",
  tradeareaname: "test4"
 },
 { 
  tradeareaid: "84",
  tradeareaname: "test5"
 },
]

function getSortedList(id){
  const clickedItem = list.find(item=>item.tradeareaid===id)
  const filterdList = list.filter(item=>item.tradeareaid!==id)
  return [clickedItem,...filterdList]
}
const sortedList = getSortedList(list[3].tradeareaid)
console.log({sortedList})

关于javascript - React js 中的数组重新排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66237430/

相关文章:

javascript - 调用javascript函数onclick ="fn1()"和onclick ="javascript:fn1()"有什么区别

reactjs - 是否可以使用 React 和 TypeScript 将子组件限制为特定组件?

javascript - jquery-mobile:无法更改对话框中的输入值

javascript - 使用 confirm() 终止函数执行

c - 将 void* 指针转换为 char* 指针并对其进行指针算术运算是否有效?

javascript - JS 数组未正确访问

reactjs - 我可以将 HTML 标签作为 prop 传递吗 - React

javascript - 在 React 应用程序中将 Google Analytics 与到达路由器集成

javascript - 通过动态加载 JavaScript 来提高网站性能?

c++ - 数组可以声明为 const 变量而不是 constexpr 的大小吗?