gpt4 book ai didi

javascript - 是否有过这样的情况:您需要在 JavaScript 中获取此reduce 函数中的第一个数字?

转载 作者:行者123 更新时间:2023-12-03 04:21:10 25 4
gpt4 key购买 nike

这个问题看起来像是一个棘手的问题 - 只是因为当我提交函数进行验证时,我得到的要求之一如下。

should_return_the_smallest_element_in_an_array_when_there_are_ties

为什么我们应该/会检查数字上的联系?

1 === 1 //returns true.

我错过了什么吗?

这是实际需求。

Write a function called "findSmallestNumberAmongMixedElements".

Given an array of mixed elements, "findSmallestNumberAmongMixedElements" returns the smallest number within the given array.

Notes: * If the given array is empty, it should return 0. * If the array contains no numbers, it should return 0.

function findSmallestNumberAmongMixedElements(arr) {
var containsNoNums = function(arr){
return arr.every(function(cv){
return Object.prototype.toString.call(cv) !== '[object Number]';
});
};

if (containsNoNums(arr) || (!(arr.length))) return 0;

var smallestNumber = arr.reduce(function(shortest, e){
return (( e <= shortest) ? e : shortest);
});

return smallestNumber;

}

var output = findSmallestNumberAmongMixedElements([4, 'lincoln', 9, 'octopus']);
console.log(output); // --> 4

最佳答案

您的解决方案的问题在于包含单个数字的字符串被视为数字。

考虑数组

[4, 'lincoln', 9, '3'] 

您的解决方案将返回“3”,这是一个错误,它应该返回 4。

有时,对于这样的问题,外部迭代可能更容易理解。不需要使用函数方法来进行这样的搜索,尤其是当它可以通过数组的单次传递来完成时。

function findSmallestNumberAmongMixedElements(arr) {
var smallest = null;
for (var i = 0; i < arr.length; i++) {
var n = arr[i];
if (typeof n == 'number') {
if (smallest === null) {
smallest = n;
} else if (n < smallest) {
smallest = n;
}
}
}
if (smallest === null) {
smallest = 0;
// This handles the case of not finding a number
// or if the array was empty.
}
return smallest;
}

console.log(findSmallestNumberAmongMixedElements([4, 'lincoln', 9, '3']));

关于javascript - 是否有过这样的情况:您需要在 JavaScript 中获取此reduce 函数中的第一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43941264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com