how-to-list-object-methods-javascript

#如何列出JavaScript物件的所有方法 找出如何獲取包含JavaScript物件方法的陣列 我們可以使用 ‘Object.getOwnPropertyNames()’ 函數來獲取與物件相關聯的所有屬性名稱。 然後,我們可以過濾結果陣列,只包括那些屬性名稱是函數的。 我們可以通過使用typeof來判斷它是否為一個函數。 例如,以下是我們可能創建的實用程式函數: getMethods = (obj) => Object.getOwnPropertyNames(obj).filter(item => typeof obj[item] === 'function') 這只列出在特定物件上定義的方法,而不是在其原型鏈中定義的任何方法。 要做到這一點,我們必須採取稍微不同的路線。我們必須首先迭代原型鏈並將所有屬性列在一個陣列中。然後,我們檢查每個單個屬性是否為函數。 為了確保在瀏覽原型鏈時不重複方法(例如始終存在的 constructor ),我們使用了一個Set數據結構,它確保值是唯一的: const getMethods = (obj) => { let properties = new Set() let currentObj = obj do { Object.getOwnPropertyNames(currentObj).map(item => properties.add(item)) } while ((currentObj = Object.getPrototypeOf(currentObj))) return [...properties.keys()].filter(item => typeof obj[item] === 'function') } 使用示例: getMethods("") getMethods(new String('test')) getMethods({}) getMethods(Date.prototype)

JavaScript 中的 map() 函式

JavaScript 中的 map() 函式細節 在函數式編程中,map() 是陣列中的關鍵方法。 以下是一個例子,它遍歷陣列 a,並根據執行 f() 來建立一個新的陣列: const b = a.map(f); 我們可以使用 map() 函式來從初始陣列中建立一個新的陣列,並使用 filter() 函式對結果進行過濾。以下是一個簡單的例子,它建立一個新的陣列來獲取 list 陣列中每個項目的第一個字母,並過濾出與 A 匹配的項目: const list = ['Apple', 'Orange', 'Egg']; list.map(item => item[0]).filter(item => item === 'A'); //'A'

JavaScript 的 `filter()` 函式

JavaScript 中 filter() 函式的詳細資訊 filter() 是陣列中非常重要的一個方法。 以下是一個例子,它遍歷陣列 a,並根據每個 a 元素在執行函式 f() 時返回的 true 值,構建一個新的陣列 b。 const b = a.filter(f) 使用 filter() 的一個好例子是當你想從陣列中刪除一個項目時: const items = ['a', 'b', 'c', 'd', 'e', 'f'] const valueToRemove = 'c' const filteredItems = items.filter(item => item !== valueToRemove) // ["a", "b", "d", "e", "f"] 下面是如何同時刪除多個項目的方法: const items = ['a', 'b', 'c', 'd', 'e', 'f'] const valuesToRemove = ['c', 'd'] const filteredItems = items.filter(item => !valuesToRemove.includes(item)) // ["a", "b", "e", "f"]

如何使用Python的`filter()`函數

Python提供了三個有用的全局函數用於處理集合:map()、filter()和reduce()。 提示:有時候,使用列表推導更能表達意思,並且通常被認為更符合Python風格。 filter()接受一個可迭代對象,並返回一個過濾對象,即另一個可迭代對象,但不包含原始對象中的某些元素。 你可以通過在過濾函數中返回True或False來實現過濾功能: numbers = [1, 2, 3] def isEven(n): return n % 2 == 0 result = filter(isEven, numbers) print(list(result)) # [2] 你也可以使用lambda函數使代碼更簡潔: numbers = [1, 2, 3] result = filter(lambda n: n % 2 == 0, numbers) print(list(result)) # [2]

如何從 JavaScript 陣列中移除項目

在 JavaScript 中,有很多方法可以從陣列中移除項目。學習使用官方推薦的方式,並瞭解其他可以選擇的選項。 以下是一些使用 JavaScript 移除陣列項目的方法。 所有下列方法都不會改變原始陣列,而是創建一個新的陣列。 如果你知道項目的索引 假設你有一個陣列,想要移除位於索引 i 的項目。 一種方法是使用 slice(): const items = ['a', 'b', 'c', 'd', 'e', 'f'] const i = 2 const filteredItems = items.slice(0, i).concat(items.slice(i + 1, items.length)) // ["a", "b", "d", "e", "f"] slice() 方法會使用傳入的索引值創建一個新的陣列。我們從開始到我們想要移除的索引位置創建一個新的陣列,然後將另一個從移除索引位置的下一個位置開始到陣列結尾的陣列連接起來。 如果你知道項目的值 在這種情況下,使用 filter() 是一個很好的選擇,它提供了更加聲明式的方式: const items = ['a', 'b', 'c', 'd', 'e', 'f'] const valueToRemove = 'c' const filteredItems = items.filter(item => item !== valueToRemove) // ["a", "b", "d", "e", "f"] 這裡使用了 ES6 的箭頭函式。你可以使用傳統函式來支援舊版瀏覽器:...