JavaScriptの再考:Death for

image



for



, , .



, , , , !



for JavaScript?



for



(. mutation of state — — . ) (. side effects — — . ), .



, — , . , , , . , , .



, (. mutable state — — . ), , . , .



. , . . ? , !



?



, - . , , api, , ..



— , .



, , , . , , . , , .



, . for



, .



const cats = [
 { name: 'Mojo',    months: 84 },
 { name: 'Mao-Mao', months: 34 },
 { name: 'Waffles', months: 4 },
 { name: 'Pickles', months: 6 }
]
var kittens = []
// ,     for
for (var i = 0; i < cats.length; i++) {
 if (cats[i].months < 7) {
   kittens.push(cats[i].name)
 }
}
console.log(kittens)

      
      





, .



-, :



const isKitten = cat => cat.months < 7
var kittens = []
for (var i = 0; i < cats.length; i++) {
 if (isKitten(cats[i])) {
   kittens.push(cats[i].name)
 }
}

      
      





— . “ 7 ” “ ” — . . 7 ? . , !



, isKitten



, , .



— ( ) . , .



const isKitten = cat => cat.months < 7 
const getName = cat => cat.name
var kittens = []
for (var i = 0; i < cats.length; i++) {
 if (isKitten(cats[i])) {
   kittens.push(getName(cats[i]))
 }
}

      
      





filter



map



, , , (filter



map



— . ) . , .



const isKitten = cat => cat.months < 7
const getName = cat => cat.name
const kittens =
 cats.filter(isKitten)
     .map(getName)

      
      





, kittens.push(...)



. var



.



const



var



let





, const



, ( ), , !



, ( ).



:



const isKitten = cat => cat.months < 7
const getName = cat => cat.name
const getKittenNames = cats =>
 cats.filter(isKitten)
     .map(getName)
const cats = [
 { name: 'Mojo',    months: 84 },
 { name: 'Mao-Mao', months: 34 },
 { name: 'Waffles', months: 4 },
 { name: 'Pickles', months: 6 }
]
const kittens = getKittenNames(cats)
console.log(kittens)

      
      







filter map . : .





break



, “ break



”, “ JavaScript: break GOTO ”.







. for



?



, - (@joelnet), , .



!



All Articles