Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 分解和排序_Javascript_Arrays_Reactjs - Fatal编程技术网

Javascript 分解和排序

Javascript 分解和排序,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,希望有人能帮助React.js和javascript的新手。 我想对数组进行排序,并将排序后的数组放入新数组中。 现在我的初始数组对我来说有点复杂,我不知道如何对它进行分解和排序 这是我的阵列: 现在由另一个数组和一个空函数组成 {items: Array(4), setItems: ƒ} 我的主要问题是,我想按名称对内部数组进行排序,并输出按名称排序的父数组。但我很难理解的是,数组内部是按索引排序的 items: Array(4) 0: {name: "b

希望有人能帮助React.js和javascript的新手。 我想对数组进行排序,并将排序后的数组放入新数组中。 现在我的初始数组对我来说有点复杂,我不知道如何对它进行分解和排序

这是我的阵列: 现在由另一个数组和一个空函数组成

{items: Array(4), setItems: ƒ}
我的主要问题是,我想按名称对内部数组进行排序,并输出按名称排序的父数组。但我很难理解的是,数组内部是按索引排序的

    items: Array(4)
    
    0: {name: "bulbasaur", url: "https://pokeapi.co/api/v2/pokemon/1/"}
    1: {name: "ivysaur", url: "https://pokeapi.co/api/v2/pokemon/2/"}
    2: {name: "venusaur", url: "https://pokeapi.co/api/v2/pokemon/3/"}
    3: {name: "charmander", url: "https://pokeapi.co/api/v2/pokemon/4/"}
    
    setItems: ƒ ()

感谢您帮助我解决问题并向我解释整个方法

您可以使用
localeCompare
name
属性的字母顺序对对象数组进行排序


array.sort((a,b)=>a.name.localeCompare(b.name))

您可以使用
localeCompare
name
属性的字母顺序对对象数组进行排序

array.sort((a,b)=>a.name.localeCompare(b.name))

尝试以下操作:

const数据={
项目:[{
名称:“布尔巴苏尔”,
url:“https://pokeapi.co/api/v2/pokemon/1/"
},
{
姓名:“艾维索”,
url:“https://pokeapi.co/api/v2/pokemon/2/"
},
{
名称:“维努索”,
url:“https://pokeapi.co/api/v2/pokemon/3/"
},
{
姓名:“阿查曼德”,
url:“https://pokeapi.co/api/v2/pokemon/4/"
}
],
setItems:()=>{}
}
常数newData={
//获取数据并按名称进行排序
items:data.items.sort((a,b)=>(a.name>b.name)?1:((b.name>a.name)?-1:0)),
setItems:data.setItems
}
console.log(newData)
尝试以下操作:

const数据={
项目:[{
名称:“布尔巴苏尔”,
url:“https://pokeapi.co/api/v2/pokemon/1/"
},
{
姓名:“艾维索”,
url:“https://pokeapi.co/api/v2/pokemon/2/"
},
{
名称:“维努索”,
url:“https://pokeapi.co/api/v2/pokemon/3/"
},
{
姓名:“阿查曼德”,
url:“https://pokeapi.co/api/v2/pokemon/4/"
}
],
setItems:()=>{}
}
常数newData={
//获取数据并按名称进行排序
items:data.items.sort((a,b)=>(a.name>b.name)?1:((b.name>a.name)?-1:0)),
setItems:data.setItems
}

console.log(newData)
我通过以下方式解决问题:

console.log(props.items.items.sort( function(a, b){
  let nameA = a.name.toUpperCase(); // ignore upper and lowercase
  let nameB = b.name.toUpperCase(); // ignore upper and lowercase
  if (nameA < nameB) {
    return -1;
  }
  if (nameA > nameB) {
    return 1;
  }

  // names must be equal
  return 0;
}))
console.log(props.items.items.sort(函数a,b){
设nameA=a.name.toUpperCase();//忽略大小写
让nameB=b.name.toUpperCase();//忽略大小写
if(nameA名称B){
返回1;
}
//名字必须相等
返回0;
}))

我通过以下方式解决问题:

console.log(props.items.items.sort( function(a, b){
  let nameA = a.name.toUpperCase(); // ignore upper and lowercase
  let nameB = b.name.toUpperCase(); // ignore upper and lowercase
  if (nameA < nameB) {
    return -1;
  }
  if (nameA > nameB) {
    return 1;
  }

  // names must be equal
  return 0;
}))
console.log(props.items.items.sort(函数a,b){
设nameA=a.name.toUpperCase();//忽略大小写
让nameB=b.name.toUpperCase();//忽略大小写
if(nameA名称B){
返回1;
}
//名字必须相等
返回0;
}))

您想按照数组中对象的
名称
属性的字母顺序对数组进行精确排序。很好地描述了您想要按照数组中对象的
名称
属性的字母顺序对数组进行排序吗。很好的描述我知道这个方法…我的问题是排序前对象的叠置我知道这个方法…我的问题是排序前对象的叠置很好听。您可以在此处阅读有关数组排序的更多信息:很高兴听到。您可以在此处阅读有关数组排序的更多信息: