Javascript 分解和排序
希望有人能帮助React.js和javascript的新手。 我想对数组进行排序,并将排序后的数组放入新数组中。 现在我的初始数组对我来说有点复杂,我不知道如何对它进行分解和排序 这是我的阵列: 现在由另一个数组和一个空函数组成Javascript 分解和排序,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,希望有人能帮助React.js和javascript的新手。 我想对数组进行排序,并将排序后的数组放入新数组中。 现在我的初始数组对我来说有点复杂,我不知道如何对它进行分解和排序 这是我的阵列: 现在由另一个数组和一个空函数组成 {items: Array(4), setItems: ƒ} 我的主要问题是,我想按名称对内部数组进行排序,并输出按名称排序的父数组。但我很难理解的是,数组内部是按索引排序的 items: Array(4) 0: {name: "b
{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;
}))
您想按照数组中对象的名称
属性的字母顺序对数组进行精确排序。很好地描述了您想要按照数组中对象的名称
属性的字母顺序对数组进行排序吗。很好的描述我知道这个方法…我的问题是排序前对象的叠置我知道这个方法…我的问题是排序前对象的叠置很好听。您可以在此处阅读有关数组排序的更多信息:很高兴听到。您可以在此处阅读有关数组排序的更多信息: