
ααΆααααααα
αααα·αααααααααααΎααααα αΆαααΆα’αααα’αα·ααααααααααα·ααααααΆαα αα ααααα αα·αα’αααα’αα·αααααααααααααααααααααα½αα―α ααΆααΏαααα·αααΉαααα’ααααΎαααααΆαααααααΉααααΈαα ααα»αααααα ααΎαα·ααΈααΆαααααααααααΉααααΈα
Heuristics ααΊααΆααααΌ αα·αα αααΆααααααααα αΆαα±ααααΎα αααα’αααα’αα·ααααααααΆααααααΈααΆαα’αα»ααααα αα½ααααααα ααααΆαα·αααααΎαααΆαααα’α₯αααα αα α¬αααα»αααααα·ααααααααααα ααα»αααααα½αααααααΎαααΆαααΆαααα’αααααααααΆαα α αΎααα·αααααΌαααΆαααΆααα·αααααααααααααααα αααααΊααΆα§ααΆα ααααα½αα ααα½ααα heuristicsα
- "ααααΎ
$(document).ready(function(){})αααααΆααααΆαα αΆααααααΎαααΌααα ααΎααα ααααα jQuery" - "αα
ααΆ
var self = thisαααααΌαβα±ααβα α βαα·ααΈααΆαααααβαααα»αβαα»αααΆαβα α βαααα‘αα" - msgstr "αα»αααΆαβαααα½αβαα·αβααΆαβαααααΆβαααααΆααα·ααΈ
returnΒ»
αααααΉαααΉαααα αααααΆαααααααΉααααΈα’αΆα ααααΎααΎααααΈααααααααααααααααΆαα αααααααα αΆααααααα ααΆααΆααΆααα·ααα·ααααααααα½α α αΎαααΆααΏααααααααα ααΆααααααααααααααα·ααααα·ααΆαααααΆαα»ααΆααααΆαααα½αα αααααΆαααααααΉααααΈαα½αααΆαα§ααΆα αααα
ααΌαα
αααΆαααΆ ααΎαααααΆααααααΆααα§ααΆα ααααα heuristics αα
αααα»ααααααΆααααααααΎααααΈαααααΆααα’αααΈαααααααα·αααααα heuristics ααΎαααααααααα
ααΉαααΆαααααα
αααααααααααααααααΉααααΈα ααααΆαα§ααΆα αααααΆαα½ααααα’αΆα
α’αα»ααααααΆαααΆααΆαααα ααα»αααααα½αααΆααααΎαααΆααααα»αααααΆαααΆααααααααααΆαααααα’αααα’αα·αααααααααααααΎαα½αααΆααα½αααΆαααΌαααΆαααΆαααααα·ααααα
αααΆααααΈαααααααααΆααααΎαααΆαα
α’αΆαα»ααααααα αααα»αααΆααααα α·ααααααα·ααΈααΆαααααααααΉααααΈ
ααΎαααΆαααααΎαααΆααΉαααΆααααΆα’αααα’αα·ααααααααααα·ααααααΆαα αα αααααααΆαααΆαααααΆααααααΎααααα»αααΆααααααααΆααααα αΆαααααααΎαααααΆαααααααΉααααΈα αααααΆααααααΆαααααΆααααα½ααααα·αααΆαα±ααΆαααΎααααΈααααα½αααααΈααααΌααααα»αα’αΆααΈααααααα½ααα α αΎααααααΆααα heuristics ααααΎααΆααααα α·ααα αα½αααααΆαααααααααΎααααΆααααΆα
αααααΆαααΆαααΆααααα αααααΈααΆααΆαααΆααααα»αααααΆαααΆαααααααααααα ααΆααααααααΉααααΈα’αΆα ααΆαααααααααααααΆααααΆααα ααΎααααΈα’αααΈ? αααααΆαααααααΉααααΈααΉαα’αα»ααααΆαα±ααα’αααααΆαα’αΆααααααααΆααΆααααα»αα α·αααααΆαααααααααΆαααααα’αααααααΎαααΆα α αΎαααα’αΆα ααα½αααΆαα ααααΎααααα―αααΆαααα αααααααα½αααααΈα ααααα·αα αΆαααΆα αααααααααααααααααΆαααΈα’αααααααα αααα»αααααααααααΈ αααα½ααααααααΆαααΆαααααααα’αΆα α αΆααααΌα ααΆαααααααααΆαααααΆαααα αα·ααα αα ααα»ααααααΆααΏααααΉαααΆααα αααααααααααΆααα·α ααΆαα§ααααααα· - ααααα·αααΎααΆαααΆααα’ααα
ααΆαααααα ααα αααααΆαααΉαααα’ααααΎααααΉααααΈ α’αααααΉααα·αα’αΆα ααααααααααΆααααα αΆαα·αααααΆααααΆαααα αααα ααααΆααΉαααΆααααΆαα α’αααααΉαα’αΆα ααααααααααααααααΆαααααααα»αααααΎαααΆα ααα»αααααα·αααΌααα·αααΆαα α’αααααΉαααΆααααααΈαααα αααααα’αααααΉααα·αααΎαααααΌαα ααα α’αααααααααααααα·ααΈ C&P ααΉαααα’ααααΎ heuristics αα αααα»αααΆαααΆααααααα½αααα
αααααααα·αα·α ααααααααα·αααααΆαα’αααα’αα·αααααα
αα ααααααααΆαα’αααα’αα·αααααα Frontend ααΎααααααα±αααα½αααααΌααααα αΆααααααααα»αααΆαααααααααααα·ααΈ α αΎαααααΆαααα½αααααΆαα½αααααΆαααααΈααΆααααα»αααΆαααααΎααααΆαααααααααΆαα½α αα·αααΆ Google α¬ Stack Overflow α αα·ααΈαααα’αααα’αΆα ααααααααΆαααΆααααα½αααΆααΎα’αααα’αα·ααααααααΆα’αααααΎαααΆαααααΉααααΈ α¬α’αααααΎαααΆαααααΉααααΈα
ααΈαα½α αααααααΆαααααΈααΎααααααΆαα½α α ααααααΌαααΈα§ααΆα ααααααααααααα αααΎα α¬αα·α ααΈ Stack Overflow α αα»αααααΆαααααααΌααα·αααααΎαααΆαααΌα ααΆαααααααα»α αα½αααααΉαα αΆααααααΎαααααααααΆα±ααααααΉααααα½αααα ααΆααΏαααα½ααααααΆααααααα»αααΆαααααΎααααααα
ααααααααααααΆααα·ααααΆααΆααααααααα ααααΎααα αααα»αα―αααΆα API α αα ααΈααααα½ααααααααααααααααΆαα’αααΈα ααα½ααααΆαααΆααααααααααα»αααΆαααΆααααΆαααα½ααα α¬ααΆαααααααααααααΆααααΆαααααααααααααααΈααααααααααααααααα· CSS αααα ααααΆαα
αα½α α αΎααα αααα»αααααΆαααΆααΈααααΌαααααΆααααααΆααα α’αααα’αΆα αααααααΆααααΆαααααΉαααααΌαααΆααΎα’αααααααααααααα·ααΈααααααααΆααΆαααααααα
α§ααΆα ααα:
ααΌαααΎααα Developer Bill ααΆα§ααΆα αααα ααΆααααΆαα αΌααααααααααααα»ααααααΆαααΆα αααΎα αααααααΆααααα αΆ JavaScript αα½αα ααα½α αα·ααααααααα ααααααα ααααααααααααααΆαα ααα»ααααααΆαααα·αααΆα "αα·αααΆ" αα·ααααΆ JavaScript ααα
αααααα½α Bill αααα½αααααα»ααΌα αααα
const usersById = {
"5": { "id": "5", "name": "Adam", "registered": true },
"27": { "id": "27", "name": "Bobby", "registered": true },
"32": { "id": "32", "name": "Clarence", "registered": false },
"39": { "id": "39", "name": "Danielle", "registered": true },
"42": { "id": "42", "name": "Ekaterina", "registered": false }
}
ααααα»ααααααα’αΆα αααα αΆααααααΈα’αααααααΎααααΆαα αα·αααΆααΎαα½αααααΆαα α»αααααααααααΆααααααΉαααα·ααΆαααααΆααααΆαααα½αα¬α’ααα
α
αΌααα·ααΆαααΆ Bill ααααΌαααΆαααΎααααΈααΆααααααααΈααα’αααααααΎααααΆαααααααΆαα
α»ααααααα αα
αααα»αααΆααααααααααα, αααααα½αααΆα
ααα ααΆααααΆαααααααΆααααΌαααααα·ααΈααΆααααα .filter() ααααΎααΎααααΈαααααααααΈα ααΌα
ααααααΆααααααΆααΆαα’αααΈαα½αααΌα
ααΆα
const attendees = usersById.filter(user => user.registered);α αΎααααααΊααΆα’αααΈαααααΆααααα½αααΆαα
TypeError: usersById.filter is not a function Bill αα·αααΆ "αααααΊααΆαααααααα·αααα ααα»αααααα½αα
ααα½α" αααααΆαααααΆααααΆαααΎαααΌααα
αααα»ααααα .filter() ααΎααα½ααΆαααααα
αααα αΆααΊααΆααα Bill ααΉαααα’ααααΎαα·ααΈααΆααααα heuristic α ααΆαααα·αααααααααα filter ααΊααΆαα·ααΈααΆαααααααααααααααΎα’αΆαα usersById - ααααα»ααααααΆααααα·αααΆααα·ααΈααΆααααα filter.
α
ααα‘α Bill Googles "ααααα javascript" ααΆααααΆαααααΎαααΆαααΎαα‘αΎαααΆα
αααΎαααα’αΆαα α αΎαααΉαααΆααΆααααααΌαααΆαααααα·α usersById αα
α’αΆαααα½αα αααααΆααααααΆαααΆαααααΎαα»α "javascript ααααααααΆαααααα»αα
ααΆα’αΆααΒ» ααΆααααααΎαα§ααΆα ααααα
ααΎ Stack Overflow αααααααΎ Object.keys(). αααααΆααααΈαααααΆααααααΆααΆαα
const attendees = Object.keys(usersById).filter(user => user.registered); ααΎαβαααβααααΆαβααα α»αβααααΌαβααΆαβαααα αΆαβα‘αΎα ααα»ααααβα
ααααβααΆαβααααΆααβααα’αΎαβααααβααα Bill ααΆα attendees αα
αααααα
α
ααα»α
αααααΊααΆ Object.keys() αααα‘ααααααααααααα» ααα»αααααα·αααααααααααααααΆααα ααααΆααααΊαααααααα’ααα user ααΆααααα
ααα‘ααααααααΆαα·ααααααΆααααα» userαα·αβα’αααβαααααβα’ααααααααΆα αααβααΊβααααα’ααααα α
αΆααααΆααααΈαα»ααααααα registered αα·αααααΌαααΆαααααααααααΆαααααα, filter ααΆααααααααΆαα»ααΈαα½ααααΆαα·ααα·α α αΎαα’αΆααα
αααααααα
Bill αα·αα·αααααΎααααΆααα·ααααααΌαα ααααΎααα ααΎ Stack Overflow α αΎαααααΎααΆαααααΆααααααΌαααΌα ααΆααααααα
const attendees = Object.keys(usersById).filter(id => usersById[id].registered); ααΎααααααααααααΊαααααΎαααΆαα ["5", "27", "39"]. ααα»ααααααα Bill α
ααααα½αααΆαααααα»ααααα’αααααααααΆ αα·ααααα’ααααααααΆαααααααααααα½αααααα
ααΎααααΈβααααααααβααΈβααααβααααβα’αααβα αΌαβααααααΆ ααααΆα Bill ααααααα "αααααααααα» javascript", αα·αα·αααααααααααααααααα ααΎ Stack Overflow α αΎαααααΎα ααΆαα½αααΉααααααΌαααΆααααααα
Object.filter = (obj, predicate) =>
Object.keys(obj)
.filter( key => predicate(obj[key]) )
.reduce( (res, key) => (res[key] = obj[key], res), {} );Bill α αααααααααΆααααΆααααα α αΎαααααΆααΆαα
const attendees = Object.filter(usersById, user => user.registered); α’αααΈααααααααΆαααααΎαααΆα - αααααΈααΆααΆαα·αα
αααΆααααΈααΌαα ααα»αααααα Bill αα·ααααααΆααΆαααααΆααα’αααΈαααααα reduce αα·ααααααααααΆααααΌαααΆαααααΎα ααΎαααΈααααα
ααα Bill αα·ααααααΆααΆααααααΆααααααααααααααΆααααααα»ααα Object αα·ααΈααΆααααααα·ααααααααΆαααααΈα
ααα»αααα Bill αα·αααααα - ααΆααααΎαααΆα! ααΆααβαα·αβααΆαβα αΆααβα’αΆααααααβααΉαβααβαα·ααΆαβαα βα‘αΎαβααα
ααΎ Bill ααααΎβα’αααΈβαα»α?
ααα Bill ααΆαααΆααααααα·ααΈααΆαααααααΎααααΈαααααααΆααααα αΆ α αΎααα½αααααααααα αΆααΌα ααΆααααααα
- ααΆαααααΎααααΆαα
.filter()αα ααΎα’ααα Bill ααΆαααα½αTypeError. ααΆαααα·ααααααααααfilterαα·αααααΌαααΆαααααΎααα ααΎααααα»ααααααΆα - ααΆααααΆαααΆααααΆααα
Object.keys()ααΎααααΈ "ααααααααααα»αα ααΆα’αΆαα" ααα»ααααααααα·αααΆαααααΌαααααααααΆαα½αααα ααΆααααααΌαααΆααααααΎαα’αΆαααααααααααααα»α - ααΌααααΈαααααααΆααααΈααα½αααΆαααααα αα·αααααΎααααΆαααα½αααΆααΆαααααααααααααΆααααααααααα ααΆααααΆαααα½αααα§ααααααααααα’ααααααααΆααααα½αα±ααααααα»α’αααααααΎααααΆαααααααααΆααααΆαα½αα§ααααααααααα’ααααααααΆαααΆαααααα αααααΊαααααΆαααα’αΆαααααααΆαααααααΆαααααααααΆαα αα·ααααααΆααααα»ααααα’αααααααΎααα
- ααΌαααα Bill ααΆαααααααα αααα·ααΈααΆαααααααα α αΎαααΆαααααΎααααααααααΆαααΆαααΆααα ααΎα’ααΈαααΊαα·αα ααααααΆαααΆααααα ααΆαααα αααα·ααααααΈαααααααααΆααααΎαααΆα α αΎαααΆααααΉααα·αααααααααΆααααααααΆαααα»αααΆααααααααααΆαα αααααααΆααααΆααα·α αα ααΆαααααααααααααααααΌαααααΎα
αααααΊααΆα§ααΆα ααααα·ααααα·αααα·ααα½α ααα»ααααααΎαααΆαααΎαα’αααα’αα·αααααααααααααΆααααα αΆααΆαααααααΌα ααααΆααΆα αααΎαααα ααΎααααΈβαααααααΆαβααΆβα±ααβααΆαβααααα·αααααΆα α’αααβααααΌαβααβαααα½αβα ααβααΈβαα·ααΈβααΆααααα αα·αβαα·ααααΆβααααΉααααΈα
α αΌαααΎαα α»ααα ααΌαααααΆα
ααααα·αααΎ Bill ααΆα’ααααααα»ααααα·ααΈααΆαααααααααΉααααΈ ααααΎαααΆαααΉαααΎααα ααΌα αααα
- αααααααΆαα»αααα αΌααααααΆααααααα±αα αα·αααααααααααααααα ααααΆα - ααΆααααααΉααααααααααααααα·ααααααΆα βαααα»αβααΆαβααααα»βαααβααΌαααβααΆβααααβααααΆαβα±ααβαααβαααααΆαα α αΎαβαααααβααααβααΆβααΆβααααα»βααααΆαβα±ααβα’αααβααααΎα αααα»αβα ααβααα½αβααΆαβα’αΆααβαααβαααααβααΉαβααΆβααααα»βα’αααβααααΎ - ααα»ααααβααΆαβααβααααα»βα’αααβααααΎβαααβααΆαβα α»ααααααβααα»ααααα"
- ααααααααααΈααααααααΎαααααααααΆααααααααα»αα½αα "αααα»αααΉαααΆαααα»αα’αΆα
ααα½αααΆαα’αΆααααααααΆααα
α»α
αα
αααα»αααααα»αα½ααααααΆαα α
ααΌααααα
Object.keys(). αααα»αβα ααβααα½αβααΆαβα’αΆααβαα½αβαααααβα’αΆααβααΆααααβααΆαβααααΎβα‘αΎααα·α". - ααΉαβααΆβαα·ααΈααΆαααααβαααβα’αΆα
βαα½αβααα½αβααΆαβααΌααα α αΎαβα’αααβααααΌαβαααααααβααβαα
ααΆβααααα α αΎαβα
αα
αΆαβα’αααΈ
mapααΊααΆαα·ααΈααΆαααααααΆααααααααααααΆαααααααΎαα’αΆααααααΈαααααααααααααααααα’αΆαααα½αααααObject.keys(usersById).map(id => usersById[id]) - ααΌαααΎαααΆα₯α‘αΌααααα’αααααΆαα’αΆαααααα’αΆα
ααααααΆαααααααα»ααααΆαααααα½ααααααΆααααααααΆααααααααααα’αααα
ααααααα
Object.keys(usersById).map(id => usersById[id]).filter(user => user.registered)
ααααα·αααΎ Bill ααΆααα ααΆαααααΌαααα ααΆααα’αΆα ααααΎααΆαα±ααααΎαα
α ααα»α’αααΈααΆαααΆααα»ααααα·αααΆααα ααααααΉααααΈααΉαααΆααααΆαααα?
ααααααααα½αααααααΆαααααα·αααααΆααααΆαα ααΆααΉαααΆααααΆαααααα ααα αα½αααααααααααααα»αααΆαααααααααααΎααααΈααααα·ααΈαααααααΆααααα αΆααα αααααΊαα½αααααααΆααααααααΌαααΆαααααΎα±ααα’αααΈαααααΎαααΆαααα»αααααα αα½αααααααα»αααααααααΆααα·ααΈααΆαααααααααα ααΆαααααΆαααααααΉαααααΆαααΆα§ααααααααααΆαα’αα·ααααααααααΆααααααα½αααα
ααΎααααΈαααααΆαααα α»ααααααα αααααα αΆααααααΎαααΆαα½αααααΉααααΈα αα ααααΆααααΆαααΈαα½ααααααααΎαααΆα ααΌααα·αα’αααΈαα·αααααααααα’ααααααα»ααααααααΆαα αααα½αα±ααααΆαααΉαααα’ααααΎααααΆααααααααΆααααααΆαααααααααα ααΌααα·α αΆαααΆαααααααα·αααααααααα α’αΆαα ααααα» ααααα’ααααααα αα αααα’αααααααΎαα»αααΆα α¬αα·ααΈααΆααααα αα·αα·αααααΎαα―αααΆα ααΎααααΈααΆααΆααΆα’αααααΉαα αααΆααααΆαααααααα·αααααααααααΆααΆαααα α’αΆαα»αααααα’αααΈαααααΆααααΌαααΆα αα·αααααααααααααΆααΆα’αααΈα
ααΆαα½αααΉααα·ααΈααΆαααααααα α’αααααΉαα’αΆα
ααααααααααααααααΆααααααΆαααααα·αααααΆααα
αααααΆαααααααΎαααααΌαα α’αααα’αΆα
ααααΆααααΆααΆαααααΉαααααΌαααααααΆ ααΈαααααα’αααααΆαααααΎαααΎααααααααΆαααααα’αααααΆαα·ααααααααα’ααααΎααΆααααα
αΌααααααΆααααααα±αα αα·ααα·αααααααααααααααα
ααααΆαα α
αΌααα
αααα»αααΌαααααΆαααααααα·ααααα·ααΆαααΈαα½αα (αααααααα·αααααα αα·αααααααααα‘αααααα·α) ααΆααΆαααΆααΆα’αΆααΈααααααα·αα
αααΆααααΆαα (ααΌα
ααΆ "α’αααααααΎααααΆαααααααΆαα
α»αααααα")α
αααααα www.habr.com
