【发布时间】:2021-09-08 22:14:15
【问题描述】:
这是我的函数,在我的控制台上我得到了排序后的数组,我的数组对象上有一个属性,它的键是未定义的,属性的值是数组的最后一项。我的问题是该属性是如何创建的,为什么以及一个名为 undefined 的属性是什么意思。
const selectionSort = function (arr) {
for (let i = 0; i < arr.length; i++) {
let smallest = arr[i];
let currentIndex;
for (let j = i + 1; j < arr.length; j++) {
if (arr[j] < smallest) {
smallest = arr[j];
currentIndex = j;
}
if (j === arr.length - 1) {
arr[currentIndex] = arr[i];
arr[i] = smallest;
}
}
}
return arr;
};
【问题讨论】:
-
如果
if (arr[j] < smallest)从未成功,您将不会分配currentIndex。然后arr[currentIndex]将创建一个undefined密钥。 -
您好,您知道 undefined 不是属性名称,而是意味着您的变量具有未定义的值
-
顺便说一句,如果您只在循环的最后一次迭代中做某事,那么您应该在循环完成后 执行此操作,而不是测试循环迭代变量。
-
@NaldDev 如果在
currentIndex未定义的情况下执行arr[currentIndex] = something,它将是一个属性名称。
标签: javascript arrays sorting undefined selection-sort