2014-10-31 68 views
0

我需要編寫一個函數,它返回輸入參數中的最後一個元素。對於字符串和數組來說這很容易,但該函數也可以接受「參數列表」。我試圖用String和Array語法來處理這個參數列表,但是我得到關於沒有方法x的對象的錯誤。這是我到目前爲止:轉換javascript中的類型

function last(list){ 
    // return last element of array 
    if(list instanceof Array){ 
    return list[list.length-1]; 
    } 
    // return last element of string 
    else if(typeof list === 'string'){ 
    return list.substring(list.length-1, list.length); 
    } 
} 

有沒有辦法將任意的參數列表轉換爲字符串或數組?這裏是我的意思列表的例子。

Test.assertEquals(last(1,"b",3,"d",5), 5); 
+0

你能給的東西是給你的錯誤 – 2014-10-31 04:29:27

回答

2

查看「參數」的對象。因此,像

function last(list) { 
    if (arguments.length > 1) { 
     return arguments[arguments.length-1]; 
    } 
    else { 
     ... (as now) 
} 
+0

如果參數是一個數組,將參數[的arguments.length-1]返回數組的最後一個值或引用的例子數組? – user137717 2014-10-31 05:14:44

+0

@ user137717是 – HMR 2014-10-31 05:20:52

+1

如果參數本身是[1,2,3],則參數[arguments.length-1]將返回[1,2,3],而不是內部的值 – AberZombie 2014-10-31 05:34:26