我建议您创建助手函数,并在每次需要时重用它。让我们让函数更通用,以便不仅可以获取最后一项,还可以获取倒数第二项,依此类推。
function last(arr, i) {
var i = i || 0;
return arr[arr.length - (1 + i)];
}
用法很简单
var arr = [1,2,3,4,5];
last(arr); //5
last(arr, 1); //4
last(arr, 9); //undefined
现在,让我们解决最初的问题
从数组中抓取倒数第二项。如果loc_array中的最后一个项目是“index.html”,则抓取倒数第三个项目。
下一行完成任务
last(loc_array, last(loc_array) === 'index.html' ? 2 : 1);
所以,你需要重写
var newT = document.createTextNode(unescape(capWords(loc_array[loc_array.length-2])));
以这种方式
var newT = document.createTextNode(unescape(capWords(last(loc_array, last(loc_array) === 'index.html' ? 2 : 1))));
或使用附加变量来增加可读性
var nodeName = last(loc_array, last(loc_array) === 'index.html' ? 2 : 1);
var newT = document.createTextNode(unescape(capWords(nodeName)));