【发布时间】:2018-12-28 22:53:00
【问题描述】:
我正在尝试获取给定数组中的最大元素,以下是要求:
- 如果数组为空,则返回 undefined。
- 如果给定键的属性不是数组,它应该返回 undefined。
-
如果键没有属性,它应该返回 undefined。
var obj = { 键:[1、2、4] };
谁能解释一下为什么我放的时候
!obj.hasOwnProperty(key)
在 IF 函数的末尾我得到错误:如果属性不存在,应该返回 undefined。 但是当我把它放在 的开头时strong>IF 函数,它通过没有问题。
var obj = {
key: [1, 2, 4]
};
function getLargestElementAtProperty(obj, key) {
if (obj[key].length === 0 || !Array.isArray(obj[key]) || !obj.hasOwnProperty(key)) {
return undefined;
}
var largestElement = 0;
for (var i in obj[key]) {
if (largestElement < obj[key][i]) {
largestElement = obj[key][i];
}
}
return largestElement;
}
【问题讨论】:
-
0 可能适合您的情况,但通常最好将初始最小值设置为数组中的值(通常是第一个值)。这也可以保存数组是否为空的检查,因为从空数组中获取元素会导致未定义。
标签: javascript arrays