αž‘αŸ’αžšαžΉαžŸαŸ’αžŠαžΈβ€‹αž‡αŸ†αž“αž½αžŸβ€‹αž±αŸ’αž™β€‹αž€αžΆαžšβ€‹αž‘αŸ’αžšαžΉαžŸαŸ’αžŠαžΈβ€‹: αž€αŸ’αž›αžΆαž™β€‹αž‡αžΆβ€‹αž’αŸ’αž“αž€β€‹αž’αž—αž·αžœαžŒαŸ’αžαž“αŸβ€‹αž•αŸ’αž“αŸ‚αž€β€‹αžαžΆαž„β€‹αž˜αž»αžβ€‹αžŠαŸ‚αž›β€‹αž›αŸ’αž’β€‹αž‡αžΆαž„β€‹αž˜αž»αž“β€‹

αž‘αŸ’αžšαžΉαžŸαŸ’αžŠαžΈβ€‹αž‡αŸ†αž“αž½αžŸβ€‹αž±αŸ’αž™β€‹αž€αžΆαžšβ€‹αž‘αŸ’αžšαžΉαžŸαŸ’αžŠαžΈβ€‹: αž€αŸ’αž›αžΆαž™β€‹αž‡αžΆβ€‹αž’αŸ’αž“αž€β€‹αž’αž—αž·αžœαžŒαŸ’αžαž“αŸβ€‹αž•αŸ’αž“αŸ‚αž€β€‹αžαžΆαž„β€‹αž˜αž»αžβ€‹αžŠαŸ‚αž›β€‹αž›αŸ’αž’β€‹αž‡αžΆαž„β€‹αž˜αž»αž“β€‹

αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚ αž€αŸ’αž›αžΆαž™αž‡αžΆβ€‹αž’αŸ’αž“αž€β€‹αž’αž—αž·αžœαžŒαŸ’αžαž“αŸβ€‹αž•αŸ’αž“αŸ‚αž€β€‹αžαžΆαž„β€‹αž˜αž»αžβ€‹αžŠαŸ‚αž›β€‹αž›αŸ’αž’β€‹αž‡αžΆαž„β€‹αž˜αž»αž“β€‹αžŠαŸ„αž™β€‹αž”αŸ’αžšαžΎβ€‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αŸ’αžšαžΉαŸ‡β€‹αž‡αŸ†αž“αž½αžŸβ€‹αž±αŸ’αž™β€‹αž€αžΆαžšβ€‹αžŸαŸ’αžšαžΆαžœαž‡αŸ’αžšαžΆαžœ

αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž”αž„αŸ’αž αžΆαž‰αžαžΆαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ αž“αž·αž„αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ‚αž›αž”αž„αŸ’αžšαŸ€αž“αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αž‡αžΆαžšαžΏαž™αŸ—αž˜αž·αž“αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž›αžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαŸ”

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 αž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžŠαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆ αž αžΎαž™αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž”αž‰αŸ’αž αžΆαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

  1. αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ .filter() αž“αŸ…αž›αžΎαž’αžαŸαžš Bill αž”αžΆαž“αž‘αž‘αž½αž› TypeError. αž‚αžΆαžαŸ‹αž˜αž·αž“αž™αž›αŸ‹αž“αŸ„αŸ‡αž‘αŸαŸ” filter αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž“αŸ…αž›αžΎαžœαžαŸ’αžαž»αž’αž˜αŸ’αž˜αžαžΆαŸ”
  2. αž‚αžΆαžαŸ‹αž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αžΆαž€αŸ’αž™ Object.keys()αžŠαžΎαž˜αŸ’αž”αžΈ "αž”αž„αŸ’αžœαŸ‚αžšαžœαžαŸ’αžαž»αž‘αŸ…αž‡αžΆαž’αžΆαžšαŸ" αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž˜αž·αž“αž“αžΆαŸ†αž˜αž€αž“αžΌαžœαž›αž‘αŸ’αž’αž•αž›αžŽαžΆαž˜αž½αž™αž‘αŸαŸ” αž‚αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž’αžΆαžšαŸαž“αŸƒαžαž˜αŸ’αž›αŸƒαžœαžαŸ’αžαž»αŸ”
  3. αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‘αž‘αž½αž›αž”αžΆαž“αžαž˜αŸ’αž›αŸƒ αž“αž·αž„αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αž½αž€αžœαžΆαž‡αžΆαž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αžšαž„αž€αŸαžŠαŸ„αž™ αž‚αžΆαžαŸ‹αž”αžΆαž“αž‘αž‘αž½αž›αžαŸ‚αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αžœαžαŸ’αžαž»αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αŸ” αž“αŸαŸ‡αž‚αžΊαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž’αžΆαžšαŸαžŠαŸ‚αž›αž”αžΆαž“αžαŸ’αžšαž„αž˜αžΆαž“αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžœαžαŸ’αžαž»αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž‘αŸαŸ”
  4. αž™αžΌαžšαŸ—αž‘αŸ… Bill αž”αžΆαž“αž”αŸ„αŸ‡αž”αž„αŸ‹αž…αŸ„αž›αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡ αž αžΎαž™αž”αžΆαž“αžšαž€αžƒαžΎαž‰αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž„αžΆαžšαž“αŸ…αž›αžΎαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž‚αžΆαžαŸ‹αž“αŸ…αžαŸ‚αž˜αž·αž“αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž αžΎαž™αž‚αžΆαžαŸ‹αž“αžΉαž„αž˜αž·αž“αžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™αž–αŸαž›αžœαŸαž›αžΆαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αžœαžΆαž‘αŸ αž–αŸ’αžšαŸ„αŸ‡αž‚αžΆαžαŸ‹αž˜αžΆαž“αž€αž·αž…αŸ’αž…αž€αžΆαžšαž•αŸ’αžŸαŸαž„αŸ—αž‘αŸ€αžαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαŸ”

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαžŸαž·αž”αŸ’αž”αž“αž·αž˜αŸ’αž˜αž·αžαž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž”αžΆαž“αžƒαžΎαž‰αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžαžΆαž˜αžšαž”αŸ€αž”αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαž„αŸ” αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αžœαžΆβ€‹αž±αŸ’αž™β€‹αž˜αžΆαž“β€‹αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αžŠαž€β€‹αžαŸ’αž›αž½αž“β€‹αž…αŸαž‰β€‹αž–αžΈβ€‹αžœαž·αž’αžΈβ€‹αžŸαžΆαžŸαŸ’αžšαŸ’αžŠ αž“αž·αž„β€‹αžŸαž·αž€αŸ’αžŸαžΆβ€‹αž‘αŸ’αžšαžΉαžŸαŸ’αžŠαžΈαŸ”

αž…αžΌαžšαž™αžΎαž„αž…αž»αŸ‡αž‘αŸ…αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“

αž”αŸ’αžšαžŸαž·αž“αž”αžΎ Bill αž‡αžΆαž’αŸ’αž“αž€αž‡αŸ†αžšαž»αž‰αž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΉαž„αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

  1. αž€αŸ†αžŽαžαŸ‹αž’αžΆαžαž»αž”αž‰αŸ’αž…αžΌαž›αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αž›αž‘αŸ’αž’αž•αž›αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ - αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αžšαž”αžŸαŸ‹αžœαžΆαŸ– β€œαžαŸ’αž‰αž»αŸ†β€‹αž˜αžΆαž“β€‹αžœαžαŸ’αžαž»β€‹αžŠαŸ‚αž›β€‹αž€αžΌαž“αžŸαŸ„β€‹αž‡αžΆβ€‹αžαŸ’αžŸαŸ‚β€‹αžαŸ†αžŽαžΆαž„β€‹αž±αŸ’αž™β€‹αž›αŸαžβ€‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ αž αžΎαž™β€‹αžαž˜αŸ’αž›αŸƒβ€‹αžšαž”αžŸαŸ‹β€‹αžœαžΆβ€‹αž‡αžΆβ€‹αžœαžαŸ’αžαž»β€‹αžαŸ†αžŽαžΆαž„β€‹αž±αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎαŸ” αžαŸ’αž‰αž»αŸ†β€‹αž…αž„αŸ‹β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž’αžΆαžšαŸβ€‹αžŠαŸ‚αž›β€‹αžαž˜αŸ’αž›αŸƒβ€‹αž“αžΉαž„β€‹αž‡αžΆβ€‹αžœαžαŸ’αžαž»β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎ - αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αžΆαž“β€‹αžαŸ‚β€‹αžœαžαŸ’αžαž»β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡β€‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡"
  2. αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αž’αŸ’αžœαžΎαž˜αŸ’αžαž„αž‘αŸ€αžαžαžΆαž˜αžšαž™αŸˆαžœαžαŸ’αžαž»αž˜αž½αž™αŸ– "αžαŸ’αž‰αž»αŸ†αžŠαžΉαž„αžαžΆαžαŸ’αž‰αž»αŸ†αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αž’αžΆαžšαŸαž“αŸƒαž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžαŸ’αžαž»αž˜αž½αž™αžŠαŸ„αž™αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘ Object.keys(). αžαŸ’αž‰αž»αŸ†β€‹αž…αž„αŸ‹β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž’αžΆαžšαŸβ€‹αž˜αž½αž™β€‹αž–αŸ’αžšαŸ„αŸ‡β€‹αž’αžΆαžšαŸβ€‹αž‚αžΆαŸ†αž‘αŸ’αžšβ€‹αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αž‘αžΎαž„αžœαž·αž‰".
  3. αžŠαžΉαž„β€‹αžαžΆβ€‹αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšβ€‹αž“αŸαŸ‡β€‹αž’αžΆαž…β€‹αž‡αž½αž™β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž€αžΌαž“αžŸαŸ„ αž αžΎαž™β€‹αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αŸ†αž”αŸ’αž›αŸ‚αž„β€‹αžŸαŸ„β€‹αž‘αŸ…αž‡αžΆβ€‹αžαž˜αŸ’αž›αŸƒ αž αžΎαž™β€‹αž…αž„αž…αžΆαŸ†β€‹αž’αŸ†αž–αžΈ map αž‚αžΊαž‡αžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž’αžΆαžšαŸαžαŸ’αž˜αžΈαžŠαŸ„αž™αž”αŸ†αž”αŸ’αž›αŸ‚αž„αžαž˜αŸ’αž›αŸƒαž“αŸƒαž’αžΆαžšαŸαž˜αž½αž™αž‘αŸ€αžαŸ–
    Object.keys(usersById).map(id => usersById[id])
  4. αžŸαžΌαž˜αž˜αžΎαž›αžαžΆαž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αž“αž€αž˜αžΆαž“αž’αžΆαžšαŸαžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαž„αž”αžΆαž“αž“αŸƒαžœαžαŸ’αžαž»αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αžαŸ’αžšαž„αŸ–
    Object.keys(usersById).map(id => usersById[id]).filter(user => user.registered)

αž”αŸ’αžšαžŸαž·αž“αž”αžΎ Bill αž”αžΆαž“αž‘αŸ…αžαžΆαž˜αž•αŸ’αž›αžΌαžœαž“αŸαŸ‡ αž‚αžΆαžαŸ‹αž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαž±αŸ’αž™αž™αžΎαž„αŸ”

αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž˜αž“αž»αžŸαŸ’αžŸαž˜αž·αž“αž„αžΆαž€αž‘αŸ…αžšαž€αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαž‰αžΉαž€αž‰αžΆαž”αŸ‹αž‡αžΆαž„αž“αŸαŸ‡?

αž–αŸαž›αžαŸ’αž›αŸ‡αž–αž½αž€αž‚αŸαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž˜αž·αž“αžŸαŸ’αž‚αžΆαž›αŸ‹αž“αžΆαž„αŸ” αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž–αž½αž€αž‚αŸαžšαžœαž›αŸ‹αž–αŸαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž†αŸ’αž›αŸ€αžαž–αŸαž›αžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž“αžœαž·αž’αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž–αŸ„αž›αž‚αžΊαž–αž½αž€αž‚αŸαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αŸ’αžœαžΎαž±αŸ’αž™αž’αŸ’αžœαžΈαŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž–αž½αž€αž‚αŸαž”αŸ’αžšαžαž»αž™αž”αŸ’αžšαŸ‚αž€αŸ’αž›αžΆαž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž‘αŸ…αž‡αžΆαž‘αž˜αŸ’αž›αžΆαž”αŸ‹αžŠαŸ‚αž›αž“αžΉαž„αž€αŸ’αž›αžΆαž™αž‡αžΆαž§αž”αžŸαž‚αŸ’αž‚αžŠαž›αŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‡αŸ†αž“αžΆαž‰αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ€αžŸαžœαžΆαž„αž€αŸ†αž αž»αžŸαž”αŸ‚αž”αž“αŸαŸ‡ αžαŸ‚αž„αžαŸ‚αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαŸ” αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αžΈαž˜αž½αž™αŸ—αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αžŸαžΌαž˜αž‚αž·αžαž’αŸ†αž–αžΈαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αŸ” αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž›αŸ†αž“αžΆαŸ†αžŠαŸ‚αž›αž’αŸ’αž›αžΆαž”αŸ‹αžŸαŸ’αž‚αžΆαž›αŸ‹αž‚αŸ’αžšαž”αŸ‹αž–αŸαž› αžŸαžΌαž˜αž–αž·αž…αžΆαžšαžŽαžΆαž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αž‹αž˜αŸ– ធអរេ αžœαžαŸ’αžαž» αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαŸ”αž›αŸ” αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžš αž¬αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž―αž€αžŸαžΆαžš αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαžαžΆαž’αŸ’αž“αž€αžŠαžΉαž„αž…αŸ’αž”αžΆαžŸαŸ‹αžαžΆαž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αžœαžΆαž‚αžΆαŸ†αž‘αŸ’αžš αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž€αžΆαžš αž“αž·αž„αž›αž‘αŸ’αž’αž•αž›αžšαž”αžŸαŸ‹αžœαžΆαž‡αžΆαž’αŸ’αžœαžΈαŸ”

αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡ αž’αŸ’αž“αž€αž“αžΉαž„αž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž“αŸ…αž–αŸαž›αžŸαžΆαž€αž›αŸ’αž”αž„αž›αžΎαž€αžŠαŸ†αž”αžΌαž„αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαžšαž”αžŸαŸ‹αžœαžΆ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž’αŸ’αž“αž€αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαž–αž·αžŸαŸαžŸαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™ αž“αž·αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž›αž‘αŸ’αž’αž•αž›αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ” αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αžΈαž˜αž½αž™αŸ— (αž”αŸ’αžšαž—αŸαž‘αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αžαž˜αŸ’αž›αŸƒαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰) αž‡αžΆαž‡αžΆαž„αž—αžΆαžŸαžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹ (αžŠαžΌαž…αž‡αžΆ "αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡")αŸ”

αž”αŸ’αžšαž—αž–αŸ– www.habr.com

αž‘αž·αž‰αž€αžΆαžšαž”αž„αŸ’αž αŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž€αžΆαžšαž–αžΆαžš DDoS, αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPS VDS πŸ”₯ αž‘αž·αž‰αžŸαŸαžœαžΆαž”αž„αŸ’αž αŸ„αŸ‡αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αžΆαžšαž–αžΆαžš DDoS αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPS VDS | ProHoster