JavaScript、angular2中如何從for循環(huán)的值中重組一個(gè)數(shù)組
問題描述
比如我有一個(gè)數(shù)組
let arry = [{'selected':true,'name':'Tony'},{'selected':false,'name':'Lily'},{'selected':true,'name':'Liyang'}];
JS中我使用for循環(huán)如何獲取僅selected為true的值?
for(var i=0;i<arry.length;i++){ if(arry[i].selected=true){console.log(arry[i].name) }}
以上的for中國,打印出來的依然是3個(gè)字符串。而我僅需要['Tony','Liyang']這樣的格式,我該如何才能獲取?之前試過使用push添加到一個(gè)空數(shù)組中,但是push中每for一次就僅push當(dāng)前for到的值,而并不會(huì)將所有值添加到一個(gè)數(shù)組中去!求大神幫幫忙!
問題解答
回答1:if(arry[i].selected=true)
這里錯(cuò)了,寫成了賦值。
回答2:一個(gè)=是賦值,兩個(gè)=是比較,樓主下次寫的時(shí)候細(xì)心點(diǎn),有時(shí)候邏輯沒問題,但就是運(yùn)行不起來,那么可能是哪個(gè)位置語法有問題了。
回答3:直接用arry[i].selected判定就好了,為啥要判斷值是否相等啊?
回答4:var newArr = []arry.forEach(function(value){if(value.selected) newArr.push(value.name)})回答5:
用 filter 和 map 處理多方便的
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);

相關(guān)文章:
1. javascript - 最近用echarts做統(tǒng)計(jì)圖時(shí)遇到兩個(gè)問題!!2. 淺談Vue使用Cascader級(jí)聯(lián)選擇器數(shù)據(jù)回顯中的坑3. node.js - less-loader 使用Mixins出錯(cuò)4. 利用IPMI遠(yuǎn)程安裝centos報(bào)錯(cuò)!5. android - 使用MTP連接的時(shí)候如何使自己的app加入選擇列表6. 為什么redis中incr一個(gè)“0” 會(huì)報(bào)錯(cuò)?7. celery+redis 怎么看redis里面的內(nèi)容8. android - 使用百度sdk調(diào)用SDKInitializer.initialize(this)時(shí)報(bào)錯(cuò)?9. node.js - npm run dev報(bào)錯(cuò)10. android - 優(yōu)酷的安卓及蘋果app還在使用flash技術(shù)嗎?

網(wǎng)公網(wǎng)安備