如何使用JavaScript获取for循环遍历数组时的最后一个值
解决方案
方案一(推荐,无需遍历,性能更高)
直接通过数组下标取最后一个元素即可,不需要循环遍历整个数组:
var new_data = $.parseJSON(data); // 先做边界判断,避免数组为空时报错 if (Array.isArray(new_data.all_soa_details) && new_data.all_soa_details.length > 0) { // 数组下标从0开始,长度减1就是最后一个元素的下标 var lastBal = new_data.all_soa_details[new_data.all_soa_details.length - 1].bal; let td77_contact = Math.abs(lastBal); }
方案二(保留for循环逻辑)
如果必须保留现有for循环写法,只需把存储值的变量提到循环外部声明,循环过程中持续覆盖变量值,循环结束后就能拿到最后一次遍历的结果:
var new_data = $.parseJSON(data); var td7_contact; // 变量提到循环外部声明 for (var j = 0; j < new_data.all_soa_details.length; j++) { td7_contact = new_data.all_soa_details[j].bal; } let td77_contact = Math.abs(td7_contact);
原理解释:你之前的代码中td7_contact是在循环内部声明的,每次循环都会重新创建该变量并赋值,循环结束后外部无法访问到该变量,也无法拿到最后一次遍历的结果。把变量提到循环外部后,每次循环都会覆盖这个变量的取值,循环结束后该变量存储的就是数组最后一个元素的bal值。
内容的提问来源于stack exchange,提问作者Nimw Ns
相关产品推荐
相关产品推荐

