原文鏈接
https://segmentfault.com/q/1010000010352622
希望將下列數組中的sh替換成滬,sz替換成深
var stooges = [ {label:1,value:1,placeCode: 'sh', stock_code: 40}, {label:1,value:1,placeCode: 'sh', stock_code: 50}, {label:1,value:1,placeCode: 'sz', stock_code: 60,status:1}, {label:1,value:1,placeCode: 'sz', stock_code: 39,status:1} ];
我能想到的:
1 var stooges = [ 2 {label: 1, value: 1, placeCode: 'sh', stock_code: 40}, 3 {label: 1, value: 1, placeCode: 'sh', stock_code: 50}, 4 {label: 1, value: 1, placeCode: 'sz', stock_code: 60, status: 1}, 5 {label: 1, value: 1, placeCode: 'sz', stock_code: 39, status: 1} 6 ]; 7 8 for (var i = 0; i < stooges.length; i++) { 9 var item = stooges[i]; 10 if (item.placeCode == "sh") { 11 item.placeCode = "滬"; 12 } 13 if (item.placeCode == "sz") { 14 item.placeCode = "深"; 15 } 16 } 17 寫個for循環遍歷一下,從第一個對象開始,發現對應的placeCode是sh則更新成文字滬,發現對應的placeCode是sz則更新成文字深,一直到最后一個對象
最簡便:
1 for(var i=0;i<stooges.length;i++){ 2 stooges[i].placeCode === 'sh'?stooges[i].placeCode = '滬': stooges[i].placeCode = '深' 3 }
第二種
var maps= new Map([['sh','滬'],['sz','深圳']]);
stooges = stooges.map(element =>{
element.placeCode = maps.get(element.placeCode);
return element;
});
第三種
var toStr = {
sh : '滬',
sz : '深'
};
stooges.map(function(value){
var placeCode = value.placeCode;
value.placeCode = toStr[placeCode] ? toStr[placeCode] : placeCode;
return value;
});
再次定義一個對象,
定義一個返回vlaue的函數;
map一下
