Heim  >  Fragen und Antworten  >  Hauptteil

So reorganisieren Sie ein Array anhand des Werts der for-Schleife in JavaScript und Angular2

Zum Beispiel habe ich ein Array

let arry = [
{"selected":true,"name":"Tony"},
{"selected":false,"name":"Lily"},
{"selected":true,"name":"Liyang"}];

Wie verwende ich eine for-Schleife in JS, um nur die Werte zu erhalten, die als wahr ausgewählt wurden?

for(var i=0;i<arry.length;i++){
    if(arry[i].selected=true){
        console.log(arry[i].name)
    }
}

Das Obige für China gibt immer noch 3 Zeichenfolgen aus. Und ich brauche nur das Format [„Tony“, „Liyang“], wie bekomme ich es?
Ich habe bereits versucht, Push zu verwenden, um etwas zu einem leeren Array hinzuzufügen, aber jedes for im Push verschiebt nur den aktuell von for erreichten Wert und fügt nicht alle Werte zu einem Array hinzu!
Bitte hilf mir, Gott!

滿天的星座滿天的星座2672 Tage vor680

Antworte allen(5)Ich werde antworten

  • typecho

    typecho2017-06-26 10:56:04

    if(arry[i].selected=true)

    这里错了,写成了赋值。

    Antwort
    0
  • PHP中文网

    PHP中文网2017-06-26 10:56:04

    一个=是赋值,两个=是比较,楼主下次写的时候细心点,有时候逻辑没问题,但就是运行不起来,那么可能是哪个位置语法有问题了。

    Antwort
    0
  • typecho

    typecho2017-06-26 10:56:04

    直接用arry[i].selected判定就好了,为啥要判断值是否相等啊?

    Antwort
    0
  • typecho

    typecho2017-06-26 10:56:04

    var newArr = []
    arry.forEach(function(value){if(value.selected) newArr.push(value.name)})

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-26 10:56:04

    filtermap 处理多方便的

    let arry = [
        { "selected": true, "name": "Tony" },
        { "selected": false, "name": "Lily" },
        { "selected": true, "name": "Liyang" }
    ];
    
    let selected = arry.filter(m => m.selected);
    
    console.log("selected", selected);
    
    let names = selected.map(m => m.name);
    console.log("names", names);
    
    // 连起来
    
    let result = arry
        .filter(m => m.selected)
        .map(m => m.name);
    console.log("result", result);

    Antwort
    0
  • StornierenAntwort