【发布时间】:2015-02-23 08:49:36
【问题描述】:
我需要编写一个函数来检索传递给函数的最后一个参数。如果它只是参数,它应该返回最后一个元素。如果它是一个字符串,它应该返回最后一个字符。数组应该返回数组的最后一个元素。我的代码适用于数组、字符串和参数,只要它们不都是字符串。
function last(list){
var arr;
if(list instanceof Array){
return list[list.length-1];
}
if(typeof list === 'string' || list instanceof String){
arr = list.split("");
return arr[arr.length-1];
}
return arguments[arguments.length-1];
}
这几乎适用于所有情况,但是当输入是一堆字符串参数时我会遇到问题。
Test.assertEquals(last('a','b','c','z'), 'z');
返回'a'
为什么在测试参数是数组还是字符串时,不相交的字符串评估为真,我如何才能普遍访问任意参数的最后一个值?
【问题讨论】:
标签: javascript arrays string arguments