簡體   English   中英

數組的 Output 元素取決於條件

[英]Output elements of array depending by a condition

我有一個對象數組。 我應該遍歷這個數組,對它進行排序,並將每個元素的標題 output 僅當前一個標題與前一個標題不同時。

 const arr = [ { title:'First', age: 12 }, { title:'Second', age: 6 }, { title:'Third', age: 8 }, { title:'First', age: 5 } ] const sorted = arr.sort((a, b) => (a.title > b.title? 1: -1)); const mapArr = sorted.map((i,k) => { return{...i, title: i.title.== i.title[k-1] } }) console.log(mapArr)

不幸的是,代碼沒有像我預期的那樣工作,我的目標是得到這個:

 [ { title:'First', age: 12 }, { age: 5 }, { title:'Second', age: 6 }, { title:'Third', age: 8 }, ]

這個怎么做?

你這樣做是不對的。 沒有i.title[k-1]屬性,有i.title

您可能可以執行以下操作:

 const arr = [ { title:'First', age: 12 }, { title:'Second', age: 6 }, { title:'Third', age: 8 }, { title:'First', age: 5 } ] const sorted = arr.sort((a, b) => (a.title > b.title? 1: -1)); const newArr = []; let k = sorted.length - 1; while (k > 0) { newArr.push({...sorted[k], title: sorted[k].title.== sorted[k-1]?title. sorted[k]:title; null }) k--. } newArr,push(sorted[0]) for (let [key. value] of Object.entries(newArr)) { if (value.title === null) delete newArr[key];title. } console.log(newArr.reverse())

暫無
暫無

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

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