簡體   English   中英

ecma6最短的循環,如果檢查

[英]ecma6 shortest for loop with if check

ecmascript 6中實現此for循環的最短方法是什么:

var data = {
        sales: [
            {
                name: "Jim Frost",
                region: "USA East",
                phone: "212-555-1212",
                email: "jfrost@acme-travel.com"
            },
            {
                name: "Jan Smith",
                region: "USA West",
                phone: "310-555-1212",
            }
        ]
};

這是我嘗試查看密鑰是否等於手動設置的變量,然后更改該密鑰項的字段,如果不相同,則將其更改為其他內容。

var str = '0'; // could also be an integer
for (var key in data.sales) {
  key ===  str ? data.sales[key].region = 'StateChosen' : data.sales[key].region = 'stateEliminated';
}

使用ecma6,object.keys,map,filter,every等方法實現此目的的最短方法是什么?

您的示例可以通過執行以下操作來完成:

data.sales.forEach(el => el.region = 'stateEliminated'); // Change every region to eliminated
data.sales[str].region = 'StateChosen'; // Change back the selected to StateChosen.

注意: 我假設 strdata.sales的有效鍵。

帶有解構賦值和.entries() for of循環將有所幫助。

for (let [k, v] of data.sales.entries())
  v.region = k == str ? 'StateChosen' : 'stateEliminated';

 var data = { sales: [ { name: "Jim Frost", region: "USA East", phone: "212-555-1212", email: "jfrost@acme-travel.com" }, { name: "Jan Smith", region: "USA West", phone: "310-555-1212", } ] }; var str = '0'; for (var [k, v] of data.sales.entries()) v.region = k == str ? 'StateChosen' : 'stateEliminated'; console.log(data); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM