簡體   English   中英

如何從數組中獲取小於 100 的所有值?

[英]How do I get all values from an Array that are less than 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]

知道我錯過了什么嗎?

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

注意: Mozilla JavaScript 文檔

filter() 方法創建一個新數組,其中包含通過所提供函數實現的測試的所有元素。

像這樣的事情應該可以解決問題:

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

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

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

同樣可以使用 ES6 箭頭函數和隱式返回來縮短。

var output = obj['key'].filter(item => item < 100);

使用帶箭頭函數的過濾器將使您的代碼更短。

 var obj = { key: [1000, 20, 50, 500], }; console.log(obj['key'].filter(item => item < 100));

您還可以使用reduce檢查元素是否小於100 ,然后將值推送到累加器。

 var obj = { key: [1000, 20, 50, 500], }; var output = obj['key'].reduce((acc, curr) => { if (curr < 100) acc.push(curr); return acc; }, []); console.log(output);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM