JavaScript中將對象數組中的某個屬性值,批量替換成另一個數值


原文鏈接

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一下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM