Я хотел бы, чтобы эта функция работала так, как задумано в 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. Любой способ решить это и передать номера по ссылке?
Важной идеей здесь будет сделать его пригодным для каждого цикла. Например:
let arr = [0, 1, 0];
arr.forEach((elem) => {
if (isLastElem(arr, elem)) {
console.log("Found the last element!");
}
});
В первом 0 функция должна возвращать false, так как это не последний элемент массива. Затем при втором 0 он должен вернуть true и записать сообщение.
3 ответа
Вы можете попробовать этот код
let arr = [0, 1, 2];
console.log(isPrimitive(arr[index+1]));
function isPrimitive(val) {
return isString(val) || isBoolean(val) || (isNumber(val) && !isNaN(val));
}
Вы можете сделать это, поместив свой номер в массив или объект, вот так:
let arr = [[0], [1], [2]];
console.log(isLastElem(arr, [2])); // returns false
console.log(isLastElem(arr, arr[2])); // returns true
Вы холодно, может быть, не хранить родной номер, но экземпляр числа ..
например.
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
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.