Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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 对不使用数组的对象数组进行排序。sort()方法_Javascript_Arrays_Angular_Typescript_Methods - Fatal编程技术网

Javascript 对不使用数组的对象数组进行排序。sort()方法

Javascript 对不使用数组的对象数组进行排序。sort()方法,javascript,arrays,angular,typescript,methods,Javascript,Arrays,Angular,Typescript,Methods,我试图按每个对象上存在的name属性对对象数组进行排序。当对下面的代码使用sort()方法时,我得到以下错误: 错误引用错误:未定义b 这是我的密码: myArray.sort( (a, b) => { return (typeof a.name: string === 'string') - (typeof b.name === 'string')|| a.name - b.name || a.name.localeCompare(b.name)}; 但奇怪的是 当我跑步时: myAr

我试图按每个对象上存在的name属性对对象数组进行排序。当对下面的代码使用
sort()
方法时,我得到以下错误:

错误引用错误:未定义b

这是我的密码:

myArray.sort( (a, b) => {
return (typeof a.name: string === 'string') - (typeof b.name === 'string')|| a.name - b.name || a.name.localeCompare(b.name)};
但奇怪的是

当我跑步时:

myArray.sort( (a, b) => {
console.log(a.name);
console.log(b.name);
它完美地记录了这些名字。我错过了什么

只是想了解一下上下文:

在从angular service.ts文件执行HTTP调用之后,我使用此方法,该数组被传递到我的组件并订阅。我使用的是Angular,所以这将是编译为JavaScript的Typescript。我还有另一个
myArray.forEach()
方法,就在我的
sort()
方法下面,它正在工作

这就是你想要的吗

var a=[
{姓名:“约翰”},
{姓名:“杰克”},
{name:“Bob”}
];
a、 排序(功能(a、b){
如果(a.name>b.name)返回1;
如果(a.name控制台日志(a)通过将数值移到顶部,可以使用与字符串或数字类型无关的比较

var数组=[{name:20},{name:21},{name:2},{name:11},{name:1},{name:'John'},{name:'Jane'},{name:'Frank'},{name:'Mary'},]
array.sort((a,b)=>(typeof a.name=='string')-(typeof b.name=='string')| | a.name>b.name | |-(a.nameconsole.log(数组)请同时添加数组。减法运算符对字符串值无效;您希望该表达式做什么?在我看来,它不像是有效的typescript语法。有这么多的
|
运算符,您最好在整个表达式中添加括号,但实际上,如果..的话,您可能想使用更容易调试的老式
。。否则
请添加一个显示实际问题的图标。这有效。非常感谢。我不太会打字,也不会解决一些问题。也许我应该坚持为我的朋友写JSprojects@newman如您所愿,我想您知道TypeScript是JavaScript的超集,因此当您不确定如何使用TS:-)时,可以使用JS