假設我得到了一個這樣的物件陣列
const arr = [
{name: 'John', 年齡: 15}。
{name: 'Max', age: 17}。
{name: 'Tom', age: 11}。
]
我怎樣才能只取包含Max, 17的物件? 這將是一個結果
b = [{ name: Max, 年齡: 17 }]
或者更好
c = { name: Max, 年齡: 17 }
uj5u.com熱心網友回復:
將陣列還原為具有最高年齡的物件:
const arr = [{"name"/span>: "John","age":15},{"name": "Max","age":17},{"name": "Tom","age":11}]
const result = arr.reduce((acc, o) => ! acc || o.age > acc.age ? o : acc, null)
console.log(result)
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
我使用null作為Array.reduce()的默認值,以防止陣列為空時出現錯誤。
const findMaxAge = arr => arr.length ?
? arr.reduce((acc, o) =>o.age > acc.age ? o : acc)
: null null ?
const arr = [{"name"/span>: "John","age":15}, {"name": "Max","age":17},{"name": "Tom","age":11}]
console.log(findMaxAge(arr)
console.log(findMaxAge([] ))
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
你可以先按年齡排序,那么年齡值最高的物件就會出現在串列的開頭:
const a = [
{name: "John", 年齡: 15}。
{name: "Max", age: 17}。
{name: "Tom", age: 11}。
]
const sortedByAge = a.sort((a,b) => /span> b. 年齡 - a.年齡)。)
const highestAge = sortedByAge[0] 。
console.log(highestAge)。
uj5u.com熱心網友回復:
希望這段代碼能幫助你
const a = [{name: 'John', 年齡: 15}。
{name: 'Max', age: 17}。
{name: 'Tom', 年齡: 11},] 。
const result = a.reduce((p, c) => p. age > c.age ? p : c)。)
console.log(result)。
uj5u.com熱心網友回復:
使用Array.prototype.reduce()是一個干凈的方法。
這個函式逐個迭代陣列,每一步都將當前的陣列值加入到前一步的結果中。在我們的例子中,將比較前一個最大的元素和當前的元素。回傳值將是包含年齡鍵最大值的物件。
const arr = [
{name: 'John', 年齡: 15}。
{name: 'Max', age: 17}。
{name: 'Tom', age: 11}。
]
const largest = arr.reduce((prev, current) => (prev. 年齡 > current.年齡) ? prev : current)
console.log(global);
<iframe name="sif3" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/310849.html
標籤:
上一篇:如何使用另一個陣列的值按第一列對一個二維陣列進行排序?
下一篇:用vba進行排序
