Javascript - Ich möchte ein bestimmtes Attribut des Objekts in einem Array herausnehmen (Objekte werden darin platziert) und es dann nach der Deduplizierung rekonstruieren. Gibt es eine gute Möglichkeit?
大家讲道理
大家讲道理 2017-05-19 10:27:10
0
6
699


ist ein solches Array. Ich möchte nach der Deduplizierung den Wert von team_name herausnehmen: [{"teamName": "value of team_name", flag: false},{},{ }, ,,] Dieses Formular (alle Flags sind falsch), ich habe über die Lösung nachgedacht (unten), ich würde gerne fragen, ob es eine Optimierung gibt, es ist wirklich hässlich

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(6)
某草草
function getTeamName(hash){
  return  hash
          .map((value)=>{
                return value.team__name; 
          }).reduce((pre,next)=>{
                if(!pre.some((value)=>{
                    return value === next;
                })){
                    pre.push(next);
                    return pre;
                }else{
                    return pre;
                }
            },[]);
}
阿神
var filters = data.map((item) => item.team_name);
var result = Array.from(new Set(filters))
                  .map(item => {
                       teamName: item,
                       flag: false
                   })
左手右手慢动作

我觉得最好用的去重方法思路如下:

let data = {}       // 判断是否是已经存在的数据
let teamName = []    // 存放结果
for (var item in team_name) {
  if (!data[item]) {    // 如果不存在  添加
    teamName.push({
      teamName: item
    })
  }
  data[item] = 1    // data的item赋值  下次判断的时候  这个值已经有了
}
PHPzhong
const arr = [...new Set(your_data.map(item => item. team_name))].map(item => ({teamName: item, flag: false}))
我想大声告诉你


上午的时候我改成了这样的方法,结果后续要用到这个teamList的flag时候,发现自己给自己挖了坑,每次都var一个data,然后生成的teamList指向改变,害我花了两个多小时,console.log半天明明前后的是一个对象啊,最后还是问了老大才解决,在此记录一下用第三方库的时候想明白 到底有没有改变值,改变引用。(_.这是引用了underscore第三方的库)

刘奇

1.先循环将所有结果压到一个数组中,然后再针对此数组做去重处理,缺点就是啰嗦。

2.循环取属性结果时就做判断,是否为重复项,处理得到最终结果,一次循环搞完,快。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage