javascript - 从 URL 到排序数组的 JSON ReactJS

标签 javascript arrays json reactjs

我有一个存储一些数据的 URL,例如

[
   {"id":1,"first_name":"add","last_name":"add"},
   {"id":2,"first_name":"sfdf","last_name":"aad"}
]

等等。 我想按姓氏对其进行排序,并在 React 功能组件中显示已排序的数组。 我怎样才能实现这个目标?

UPD。我在将数据从 url 转换为可访问的 js 数组时遇到问题,而不是对其进行排序

这就是我从 URL 获取数据的方式

function App() {
  const [contacts, setContacts] = useState([]);

  const fetchContactsList = async() => {
    try {
      let response = await fetch(URL)
      let contacts = await response.json()
      setContacts(contacts)
    } catch (error) {
      console.log(error)
    }
  }
  useEffect(() => {
    fetchContactsList()
  }, [])


  return (
    <main>
      <Container>
        <Header />
        <Search />
        <ContactsList contacts={contacts} />
      </Container>
    </main>
  );
}

最佳答案

编辑:

  • 编辑答案以更好地反射(reflect)问题中 OP 的澄清
  • 更新了排序函数以使用 localeCompare

我认为您正在寻找的是这样的:


function App() {
  const [contacts, setContacts] = useState([]);

  const fetchContactsList = async() => {
    try {
      let response = await fetch(URL)
      let contacts = await response.json()
      setContacts(contacts)
    } catch (error) {
      console.log(error)
    }
  }
  useEffect(() => {
    fetchContactsList()
  }, [])

  const sortedContacts = useMemo(() => {
    if (!contacts) return;

    return contacts.sort((a,b) => a.last_name.localeCompare(b.last_name));
  }, [contacts]);

  return (
    <main>
      <Container>
        <Header />
        <Search />
        <ContactsList contacts={sortedContacts} />
      </Container>
    </main>
  );
}

关于javascript - 从 URL 到排序数组的 JSON ReactJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66453611/

相关文章:

javascript - jQuery.each - 如何遍历 JSON 对象元素?

python - 当 unique_together 应用于 django-rest 时,SlugRelatedField 的查询集值

javascript - 如何在 Angularjs 中将 json 响应显示为代码而不是字符串?

javascript - 表单不将数据保存到 mySQL 表中

javascript - 更改 .js 扩展名默认编辑器(win7)

python - 两个numpy ndarrays的字典序比较

javascript - if(数组变量)语法在 Javascript 中有效

javascript - 防止 Angular $httpProvider 拦截器在模板加载时触发

iphone - C/C++ 与 Objective-C 数组

javascript - 在 AJAX 自动完成中操作 JSON