suchen

Heim  >  Fragen und Antworten  >  Hauptteil

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?


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

大家讲道理大家讲道理2737 Tage vor700

Antworte allen(6)Ich werde antworten

  • 某草草

    某草草2017-05-19 10:29:10

    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;
                    }
                },[]);
    }

    Antwort
    0
  • 阿神

    阿神2017-05-19 10:29:10

    var filters = data.map((item) => item.team_name);
    var result = Array.from(new Set(filters))
                      .map(item => {
                           teamName: item,
                           flag: false
                       })

    Antwort
    0
  • ringa_lee

    ringa_lee2017-05-19 10:29:10

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

    let data = {}       // 判断是否是已经存在的数据
    let teamName = []    // 存放结果
    for (var item in team_name) {
      if (!data[item]) {    // 如果不存在  添加
        teamName.push({
          teamName: item
        })
      }
      data[item] = 1    // data的item赋值  下次判断的时候  这个值已经有了
    }

    Antwort
    0
  • PHPz

    PHPz2017-05-19 10:29:10

    const arr = [...new Set(your_data.map(item => item. team_name))].map(item => ({teamName: item, flag: false}))

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:29:10


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

    Antwort
    0
  • 怪我咯

    怪我咯2017-05-19 10:29:10

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

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

    Antwort
    0
  • StornierenAntwort