英文:
How toInvisible Undefined last element in JS array
问题
console.log(transX); //正确:打印长度为 91 的数组(尽管带有小数的数字出现在末尾,原因不明)
console.log(transY); //正确:打印长度为 91 的数组
console.log("first");
console.log(transX[0]); //正确:打印 1
console.log("Last");
console.log(transX[-1]); //不正确:打印 "undefined" 而不是最后一项
let xd = transX.pop();
console.log("xd: " + xd); //可以正常运行,正确打印 transX 中的最后一项
为何在使用切片时 "undefined" 被视为数组元素,但在使用 pop() 时不被视为数组元素呢?
如何能够获得不包含 undefined 元素的数组?
英文:
I have a Javascript array, full_range:
const range1 = _.range(1, 10, 0.5);
const range2 = _.range(10, 100, 5);
const range3 = _.range(100, 1000, 50);
const range4 = _.range(1000, 10000, 500);
const range5 = _.range(10000, 105000, 5000);
const full_range = range1.concat(range2).concat(range3).concat(range4).concat(range5);
I then loop over this array and populate another array.
var transY= [];
var transX= [];
for(let i = 0; i < full_range.length; i++){
let y = getTrans(full_range[i], dampingFactor, natFreq); //returns a float
transY.push(y);
transX.push(parseFloat(full_range[i]));
}
The result is then returned to another function where:
console.log(transX); //Correct: Prints Array of 91 length (although the numbers with //decimals are at the end for some reason
console.log(transY); //Correct: Prints Array of 91 length
console.log("first");
console.log(transX[0]); //Correct: Prints 1
console.log("Last");
console.log(transX[-1]); //Incorrect: Prints "undefined instead of the last item
let xd = transX.pop();
console.log("xd:" + xd); //Works and correctly prints the last item in transX
The goal is to graph this dataset on a BokehJS graph, which does weird things when the last value is undefined.
Why is "undefined" being treated as an array element using slicing, but not when using pop()?
How would I be able to get the array without the undefined element?
答案1
得分: 1
JavaScript不支持使用方括号表示的负数数组索引。但是,您可以使用Array#at
与负数索引。
let arr = [1, 2, 3];
console.log(arr[-1]); // 错误
console.log(arr.at(-1)); // 获取最后一个元素
英文:
Negative array indexing (with bracket notation) is not supported in JavaScript. However, you can use Array#at
with negative indexes.
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-js -->
let arr = [1,2,3];
console.log(arr[-1]); // wrong
console.log(arr.at(-1)); // get last element
<!-- end snippet -->
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论