Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 JSON按字母顺序排序_Javascript_Json - Fatal编程技术网

Javascript JSON按字母顺序排序

Javascript JSON按字母顺序排序,javascript,json,Javascript,Json,我正在尝试将下面的JSON输出为HTML。我已经创建了该对象以及该对象的属性,但是,我正在努力将其输出到HTML。这是我到目前为止所拥有的。有什么想法吗 var人; 人=[{ 名字:“唐·莫洛伊”, 类别:"学术" }, { 名字:“帕特·奎尔”, 类别:"学术" } ]; console.log(人); var myObj=JSON.parse(人); document.getElementById(“输出人员”).innerHTML=myObj.name 这不是json对象。它是一个普通的

我正在尝试将下面的JSON输出为HTML。我已经创建了该对象以及该对象的属性,但是,我正在努力将其输出到HTML。这是我到目前为止所拥有的。有什么想法吗

var人;
人=[{
名字:“唐·莫洛伊”,
类别:"学术"
},
{
名字:“帕特·奎尔”,
类别:"学术"
}
];
console.log(人);
var myObj=JSON.parse(人);
document.getElementById(“输出人员”).innerHTML=myObj.name

这不是
json
对象。它是一个普通的数组对象。因此,请删除
json.parse()
。然后像这样更改输出内部HTML dom
myObj[0]。名字

更新:

对于所有带排序的first\u name。请尝试此
myObj.map(a=>a.first\u name.sort().join(“and”)

var人;
人=[{
名字:“唐·莫洛伊”,
类别:"学术"
},
{
名字:“帕特·奎尔”,
类别:"学术"
}
];
人=人。排序((a,b)=>{
var a1=a.first_name.toLowerCase();
var b1=b.first_name.toLowerCase();
返回a1 b1?1:0;
})
console.log(人);
var myObj=人;
document.getElementById(“输出人”).innerHTML=myObj.map(a=>a.first\u name).join(“和”)

对于您的问题“按字母顺序进行JSON排序”,您可以首先使用它对数组进行排序,然后填充
output
变量,还可以使用
分隔符来在html中显示名称

代码:

const people=[{名字:唐·莫洛伊,类别:学术'},{名字:帕特·奎尔,类别:学术'}];
常量分隔符=“
”; //按名称对对象数组进行排序,并使用分隔符填充输出 常量输出=人 .sort((a,b)=>a.first\u name.toLowerCase().localeCompare(b.first\u name.toLowerCase()) .map(user=>user.first\u name) .连接(分隔符); console.log(人); document.getElementById('output-people')。innerHTML=output

JSON在JS中按字母顺序排序=>

您可以这样尝试:

function compareStrings(a, b) {
  // Assuming you want case-insensitive comparison
  a = a.toLowerCase();
  b = b.toLowerCase();

  return (a < b) ? -1 : (a > b) ? 1 : 0;
}

places.sort(function(a, b) {
  return compareStrings(a.first_name, b.first_name);
})
函数比较(a、b){
//假设您想要不区分大小写的比较
a=a.toLowerCase();
b=b.toLowerCase();
返回值(ab)-1:0;
}
位置.排序(函数(a,b){
返回compareStrings(a.first\u name,b.first\u name);
})

请指定您想要什么。顺序还是输出,或者两者都是?首先,我想将属性输出到一个列表中。完成这项工作后,下一个障碍是按字母顺序按“名字”列出它们。感谢首先,
people
是一个数组,而不是JSON。第二,属性
name
在哪里?没有“name”属性;你现在正在做你想做的事情。我会后退一步,快速搜索如何在js中解析和使用json。注意到目前为止这里还没有json。@weedoze-正确,应该是属性“first_name”而不是“name”。谢谢汉克斯:-)你将如何按字母顺序列出所有“名字”属性?i、 在对象数组中,要排序的属性是字符串。。因此,您的代码将无法工作correctly@Yosvel昆特罗-好的,你认为什么最有效?对象数组可以根据其属性之一的值进行排序:@prasad perfect,这是我唯一的评论。。你的答案很完美!