2017-06-01 50 views
-1

給定一個對象和一個鍵,我創建一個函數,該函數返回一個數組,該數組包含位於給定鍵的數組中的所有元素,它們的位置小於100.基本上,如果數組爲空,則它應該返回一個空數組。如果數組中不包含小於100的元素,它應該返回一個空數組。 如果給定鍵的屬性不是數組,它應該返回一個空數組。 如果在鍵上沒有屬性,它應該返回一個空數組。如何從小於100的數組中獲取所有值?

這裏是我的代碼至今:

function getElementsLessThan100AtProperty(obj, key) { 
    if(obj.key < 100){ 
    return obj.key; 
    } 
} 

var obj = { 
    key: [1000, 20, 50, 500] 
}; 
var output = getElementsLessThan100AtProperty(obj, 'key'); 
console.log(output); // --> MUST RETURN [20, 50] 

任何想法,我缺少的是什麼?

+1

你是比較數組的一個數字。還需要按照[動態訪問對象屬性使用變量]使用'[]'對象表示法(https://stackoverflow.com/questions/4244896/dynamically-access-object-property-using-variable) – charlietfl

+0

爲什麼你需要分別傳遞對象和密鑰?爲什麼不「得到......(obj.key)'......? – deceze

+1

這不是你如何使用變量來訪問對象。 'obj.key'與'obj [「key」]'相同''你想要的是'obj [key]'。但還有其他問題 –

回答

1

使用過濾器方法來幫助解決這個問題。

注:Mozilla JavaScript Docs

的過濾器()方法創建與通過由提供的功能實現的測試中所有元素的數組。

像這樣的東西應該做的伎倆:

var obj = { 
    key: [1000, 20, 50, 500] 
}; 

var output = obj['key'].filter(function(item){ 
    return item < 100; 
}); 

console.log(output); // --> MUST RETURN [20, 50] 
相關問題