如何在JavaScript中引用基本类型?

问题描述 投票:0回答:3

我想按照JavaScript的意图制作类似这样的功能:

function isLastElem(array, elem) {
    if (elem === array[array.length-1]) {
        return true;
    }
    else {
        return false;
    }
}

目的是该函数应该能够识别任何数组的最后一个元素。例如:

let arr = [0, 1, 2];
console.log(isLastElem(arr, 2)); // I would expect false to be returned
console.log(isLastElem(arr, arr[2])); // I would expect true to be returned

但是,由于数字是原始值,所以它们会通过其值传递给函数,因此两个函数调用都返回true。有什么办法解决这个问题并通过引用传递数字吗?

javascript arrays object reference primitive
3个回答
1
投票

您可以通过将数字包装在数组或对象中来做到这一点,就像这样:

let arr = [[0], [1], [2]];
console.log(isLastElem(arr, [2])); // returns false
console.log(isLastElem(arr, arr[2])); // returns true

0
投票

您可能不存储本地号码,而是存储Number的一个实例。

例如

function isLastElem(array, elem) {
    if (elem === array[array.length-1]) {
        return true;
    }
    else {
        return false;
    }
}

let arr = [new Number(0), new Number(1), new Number(2)];

console.log(isLastElem(arr, 2)); // I would expect false to be returned
console.log(isLastElem(arr, arr[2])); // I would expect true to be returned
© www.soinside.com 2019 - 2024. All rights reserved.