我正在尝试从JavaScript数组中的序列返回最低的负数,或者在没有的情况下返回-1。这是我的代码:
console.log([1,2,3,-2,4].reduce((a,b) => {return b<0?(b<a?b:a):-1}))
为什么这会返回-1而不是-2?不会-2检查前一个-1值并返回?
任何线索都可能会受到赞赏。
谢谢,
答案 0 :(得分:3)
如果元素小于给定的初始值,则可以返回检查结果。
console.log([1, 2, 3, -2, 4].reduce((a, b) => a < b ? a : b, -1));
答案 1 :(得分:2)
您只需在reduce
内打印即可查看
console.log([1,2,3,-2,4].reduce((a,b) => {
console.log(a, b, a<0?(b<a?b:a):-1);
return a<0?(b<a?b:a):-1
}))
&#13;
当a = -2且b = 4时,你的语句返回-1,因为b&gt; 0,你可以用
解决这个问题
$scope.data = [
{'name': 'ibrahim'},
{'name': 'nizam'},
{'name': 'shahid'},
{'name': 'shahrukh'}
];
for (i = 0; i <= $scope.data.length; i++) {
if(param == $scope.data[i].name)
$scope.myname = $scope.data[i].name;
}
&#13;
答案 2 :(得分:1)
你可以将数组减少到最小数,然后根据它返回值,如下所示:
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
您也可以使用var arr = [1,2,3,-2,4].reduce((a,b) => {return b<a?b:a});
if(arr[0] < 0)
console.log(arr[0]);
else
console.log(-1);
对数组进行排序,然后检查arr [0]并根据该值返回值。
答案 3 :(得分:0)
你忘了给出初始值,它应该是这样的:
[1,2,3,-2,4].reduce((a,b) => b<0 ? (b<a?b:a) : a, -1)