JavaScript、angular2如何從for迴圈的值重組一個陣列
滿天的星座
滿天的星座 2017-06-26 10:54:04
0
5
716

例如我有一個陣列

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

JS中我使用for迴圈如何取得僅selected為true的值?

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

以上的for中國,印出來的依然是3個字串。而我只需要["Tony","Liyang"]這樣的格式,我該如何才能取得?
之前試過使用push加入到一個空數組中,但是push中每for一次就僅push當前for到的值,而不會將所有值添加到一個數組中去!
求大神幫忙!

滿天的星座
滿天的星座

全部回覆(5)
typecho
if(arry[i].selected=true)

這裡錯了,寫成了賦值。

Ty80

一個=是賦值,兩個=是比較,樓主下次寫的時候細心點,有時候邏輯沒問題,但就是運作不起來,那麼可能是哪個位置語法有問題了。

typecho

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

typecho

雷雷

给我你的怀抱

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);

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板