我编写了一个简单的函数来排序
对象,并不期望它能够工作,但它确实有效:
function sortObjs(objArr,field) {
objArr.sort(
function(a,b) {
if( isNaN(a[field]) ) {
return a[field].localeCompare(b[field]);
} else {
return parseFloat(a[field]) - parseFloat(b[field])
}
}
);
return objArr;
}
当我调用这个函数时,我毫无问题地得到了排序的对象。但我没想到它会起作用,因为我认为前两个 return 语句会在到达最后一个语句之前退出函数:return objArr
。
最佳答案
您有一个嵌套函数。前两个 return 将退出内部函数,而最后一个 return 将退出外部函数。
编辑:
您可以将函数返回视为用返回值“替换”函数。例如:
var i = getSum(1, 3);
function getSum(a, b) {
return a + b;
}
函数 getSum 返回 a 和 b 的和。 var i = getSum(1, 3)
行将执行函数中包含 a = 1
和 b = 3
的代码行。返回的值“替换”函数调用。所以现在这行代码看起来像 var i = 4;
。虽然这并不是它的工作原理,但这是一种很好的概念化方式。这是一种特殊情况,因为您实际上并未在此处运行内部方法,而是将其作为变量传递。
如果您还有其他问题,请告诉我!
关于javascript - javascript 中的 return 语句不退出函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30198287/