
Ntughari
Ahụmahụ anyị na-egosi na ndị na-emepụta ihe na-abụghị nkà na ụzụ na ndị na-emepụta ihe na-akụzi onwe ha na-adaberekarị na ụkpụrụ usoro iwu, kama na usoro heuristic.
Heuristics bụ ụkpụrụ na iwu pụtara ìhè nke onye nrụpụta mụtara site na omume. Ha nwere ike ha agaghị arụ ọrụ nke ọma ma ọ bụ ruo n'ókè ụfọdụ, mana ha na-arụ ọrụ nke ọma na ha anaghị achọ echiche siri ike. Nke a bụ ọmụmaatụ ụfọdụ nke heuristics:
- "Jiri
$(document).ready(function(){})maka ibido koodu na saịtị jQuery" - "Imepụta
var self = thisachọrọ ịkpọ usoro n'ọrụ azụghachi" - "Ọrụ akụ enweghị ndị na-arụ ọrụ
return»
N'otu oge ahụ, enwere ike iji ụkpụrụ usoro ihe mee ihe iji chọta ngwọta maka nsogbu ndị ọzọ. Ọ bụ eziokwu mgbe niile ma na-ekpebikarị ụdị ọrụ nke otu mmewere. Ụkpụrụ usoro ọmụmụ gụnyere, dịka ọmụmaatụ:
Biko mara na anyị na-etinye naanị ihe atụ nke heuristics n'akara ngụ iji mesie ike ọrụ nka nke heuristics ma e jiri ya tụnyere ike nke usoro ihe ọmụma. Ọ dịghị nke ọ bụla n'ime ihe atụ heuristic na-emetụta ụwa niile, ma ha na-arụ ọrụ n'ọnọdụ zuru oke nke ndị mmepe na-eji ha na-enweta koodu ọrụ na-aghọtaghị nke ọma ka o si arụ ọrụ.
Arụmụka na-akwado usoro usoro iwu
Anyị achọpụtala ọtụtụ oge na ndị na-emepụta ihe na-abụghị ndị na-emepụta ihe na-achọsi ike iji dozie nsogbu site na iji ụkpụrụ usoro. Nke a na-abụkarị n'ihi na ha enweghị ohere ịmụta ha n'oge mbụ ha na-arụ ọrụ, na n'ihi na ndị ọrụ heuristic na-arụ ọrụ nke ọma, ha na-anọgide na-eji ha eme ihe.
Otú ọ dị, n'agbanyeghị mgbagwoju anya pụtara, ịmụta tiori nwere ike ịba uru nke ukwuu. Maka gịnị? N'ihi na tiori ga-enye gị ohere inwe obi ike na ngwọta gị na-arụ ọrụ, nakwa iji onwe gị na-enweta azịza nke ajụjụ ọhụrụ, na-enweghị achọ onye ọzọ ngwọta. N'oge dị mkpirikpi, algọridim heuristic nwere ike ịdị ka ihe ngwọta dị mfe na ngwa ngwa, mana ọ ga-edugakarị na ngwọta na-adịghị mma - ma ọ bụrụ na ọ bụla.
Ọzọkwa, site na ịdabere na heuristics, ị gaghị amụta iji dozie nsogbu n'ezie. Ikekwe ọtụtụ mgbe ị ga-enwe ike ịchọta ngwọta na-arụ ọrụ, ma n'oge na-adịghị, ị ga-eru njedebe nwụrụ anwụ nke ị na-agaghị ahụ ụzọ mgbapụ. Ndị mmemme C&P na-adabere na heuristics n'ọrụ ha.
Ngosipụta ọkwa onye nrụpụta
Mgbe a na-agba ndị mmepe frontend ajụjụ ọnụ, anyị na-enye ha ihe ịma aka mmemme ma gwa ha na ha nweere onwe ha iji isi mmalite ọ bụla, ma ọ bụrụ Google ma ọ bụ Stack Overflow. N'ụzọ dị otú a, ị nwere ike ikpebi ngwa ngwa ma onye nrụpụta ahụ ọ bụ onye na-agba ume ma ọ bụ onye na-eso echiche.
Ndị mbụ, na-enweghị ihe ọ bụla, detuo koodu sitere na ihe atụ dabara adaba karịa ma ọ bụ obere nke sitere na Stack Overflow. Naanị mgbe koodu ahụ anaghị arụ ọrụ dị ka echere, ha ga-amalite tweaking ya ka ọ dabara onwe ha. Ọtụtụ mgbe, ha anaghị eme nke a.
Nke ikpeazụ na-achọ azịza na akwụkwọ API. N'ebe ahụ, ha na-achọta ozi gbasara ole paramita otu ọrụ na-ewe, ma ọ bụ kpọmkwem syntax nke ụdị gbasaa nke ihe onwunwe CSS chọrọ.
Ugbua na nkeji ise mbụ nke ajụjụ ọnụ, ị nwere ike ikpebi n'ụzọ ziri ezi ihe ụdị programmer onye ndoro-ndoro ochichi.
Ihe nlele:
Ka anyị were Bill Mmepụta dịka ọmụmaatụ. Ọ na-ewere ọtụtụ nkuzi ọzụzụ, dozie ọtụtụ nsogbu Javascript, wee dee weebụsaịtị n'oge efu ya, ma ọ bụghị "n'ezie" ọmụmụ Javascript.
Otu ụbọchị Bill hụrụ ihe dị ka nke a:
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 }
}
Ihe dị otú ahụ nwere ike igosipụta ndepụta ndị ọrụ yana ma ha edebanyere aha maka otu mmemme.
Ka anyị kwuo na Bill kwesịrị iweghachite ndepụta ndị ọrụ debanyere aha. N'ikwu ya n'ụzọ ọzọ, kpochaa ha. Ọ hụrụ koodu nke usoro ahụ .filter() na-eji nzacha ndepụta. Ya mere ọ na-agbalị ihe dị ka:
const attendees = usersById.filter(user => user.registered);Ma nke a bụ ihe ọ nwetara:
TypeError: usersById.filter is not a function "Nke a bụ ụdị nzuzu," Bill na-eche, n'ihi na ọ hụrụ koodu nke dị na ya .filter() mere ka nzacha.
Nsogbu bụ na Bill tụkwasịrị obi n'ụzọ dị egwu. Ọ naghị aghọta nke ahụ filter bụ usoro akọwara na arrays, ma usersById - ihe nkịtị na-enweghị usoro filter.
Bill Googles nwere mgbagwoju anya"nzacha javascript" Ọ na-ahụ ọtụtụ aha nke arrays wee chọpụta na ọ kwesịrị ịtụgharị usersById na n'usoro. Mgbe ahụ na arịrịọ "javascript tụgharịa ihe n'usoro» ọ na-ahụ ihe atụ na Stack Overflow na-eji Object.keys(). Mgbe nke a gasịrị ọ nwara:
const attendees = Object.keys(usersById).filter(user => user.registered); Oge a, ọ dịghị njehie egosiri, mana ọ tụrụ Bill n'anya, ubi ahụ attendees na-anọgide efu.
Point bụ na Object.keys() na-eweghachi igodo ihe ahụ, mana ọ bụghị ụkpụrụ ya. N'ezie, aha nke mgbanwe user na-eduhie ngwa ngwa n'ihi na ọ bụghị ihe user, na ihe njirimara, ya bụ, eriri. Ebe ọ bụ na àgwà registered akọwaghị ya maka eriri, filter na-enyocha ntinye ọ bụla dị ka ụgha, na n'usoro na-apụta efu.
Bill lerukwuo anya na azịza ya na Stack Overflow wee mee mgbanwe ndị a:
const attendees = Object.keys(usersById).filter(id => usersById[id].registered); Oge a nsonaazụ ka mma: ["5", "27", "39"]. Ma Bill chọrọ inweta ihe ndị ọbịa ahụ, ọ bụghị ID ha.
Iji chọpụta ka esi enyocha ndị ọbịa, Bill were iwe na-achọ "ihe nzacha javascript", na-enyocha nsonaazụ ọchụchọ na Stack Overflow wee chọpụta na koodu a:
Object.filter = (obj, predicate) =>
Object.keys(obj)
.filter( key => predicate(obj[key]) )
.reduce( (res, key) => (res[key] = obj[key], res), {} );Bill depụtaghachiri ahịrị ndị a wee nwaa:
const attendees = Object.filter(usersById, user => user.registered); Ihe niile na-arụ ọrụ - ọ bụ ezie na ọ bụghị ihe doro anya kpatara ya. Bill aghọtaghị ihe ọ bụ maka reduce na otu esi eji ya. Ọzọkwa, Bill aghọtaghị na ọ bụ nnọọ kọwaa maka ihe zuru ụwa ọnụ Object usoro ọhụrụ na-abụghị ọkọlọtọ.
Ma Bill achọghị ịma - ọ na-arụ ọrụ! O nwechaghị mmasị na ihe ga-esi na ya pụta ma.
Gịnị ka Bill mere?
Bill nwara ụzọ dị egwu iji dozie nsogbu ahụ wee zute nsogbu ndị a:
- Iji
.filter()na mgbanwe, Bill nwetaraTypeError. Ọ ghọtaghị nke ahụfilteradịghị achọpụta na nkịtị ihe. - O tinyere akwụkwọ
Object.keys()iji "gbanwee ihe ahụ ka ọ bụrụ nhazi", ma nke a n'onwe ya ewetaghị ihe ọ bụla. Ọ dị mkpa ịmepụta ọtụtụ ụkpụrụ ihe. - Ọbụlagodi mgbe ọ nwetasịrị ụkpụrụ ma jiri ha dị ka ọnọdụ maka nzacha, ọ nwetara naanị njirimara kama ihe onye ọrụ jikọtara ya na njirimara ndị ahụ. Nke a bụ n'ihi na nzacha nzacha nwere ID, ọ bụghị ihe onye ọrụ.
- Ka oge na-aga, Bill gbahapụrụ ụzọ a wee chọta ngwọta na-arụ ọrụ na Intanet. Otú ọ dị, ọ ka na-aghọtaghị otú o si arụ ọrụ - na ọ gaghị egbu oge na-agbalị ịchọta ya, n'ihi na o nwere ihe ndị ọzọ ime.
Nke a bụ ihe atụ arụrụ arụ, mana anyị ahụla ndị mmepe na-edozi nsogbu n'otu ụzọ ahụ ọtụtụ oge. Iji dozie ha nke ọma, ịkwesịrị ịpụ na usoro heuristic na nkuzi ọmụmụ.
Ka anyị gbadaa na isi
Ọ bụrụ na Bill bụ onye na-akwado usoro iwu, usoro a ga-adị ka nke a:
- Chọpụta ntinye enyere ma chọpụta ihe achọrọ - n'ihe gbasara akụrụngwa ha: "Enwere m ihe igodo ya bụ eriri na-anọchite anya ID yana ụkpụrụ ya bụ ihe na-anọchite anya ndị ọrụ. Achọrọ m ịnweta usoro nke ụkpụrụ ya ga-abụ ihe onye ọrụ - mana ọ bụ naanị ihe onye ọrụ edebanyere aha"
- Ghọta ka esi atụgharị site na ihe: "Amaara m na m nwere ike nweta ọtụtụ igodo dị n'ihe site na ịkpọ
Object.keys(). Achọrọ m ị nweta nhazi n'ihi na arrays na-akwado iteration". - Chọpụta na usoro a na-enyere aka nweta igodo, yana ịkwesịrị ịgbanwe igodo ka ọ bụrụ ụkpụrụ, ma cheta ya
mapbụ usoro doro anya maka ịmepụta usoro ọhụrụ site n'ịgbanwe ụkpụrụ nke usoro ọzọ:Object.keys(usersById).map(id => usersById[id]) - Hụ na ị nwere nzacha ngwa ngwa nke nwere ezigbo ụkpụrụ ị chọrọ nzacha:
Object.keys(usersById).map(id => usersById[id]).filter(user => user.registered)
A sị na Bill gara ụzọ a, ọ gaara arụrụ anyị ọrụ.
Gịnị kpatara na ndị mmadụ anaghị atụgharịkarị na tiori?
Mgbe ụfọdụ, ha amaghị ya. Ọtụtụ mgbe, ha na-arụsi ọrụ ike nke ukwuu iwepụta oge iji mụta ụzọ a isi edozi nsogbu - ha kwesịrị ime ka ihe rụọ ọrụ. Ha n'ihe ize ndụ ịtụgharị ụzọ a ka ọ bụrụ omume nke ga-abụ ihe mgbochi na mmepe nke nkà ha.
Iji zere mmejọ ndị dị otú ahụ, malite mgbe niile na tiori. N'oge ọ bụla nke usoro a, chee echiche banyere data ị na-eme. Kama ịdabere na ụkpụrụ ndị a ma ama mgbe niile, tụlee ụdị data oge ochie: nhazi, ihe, eriri, wdg. Mgbe ị na-eji ọrụ ma ọ bụ usoro, lelee akwụkwọ ahụ iji hụ na ị maara kpọmkwem ụdị data ọ na-akwado, ihe arụmụka ọ na-ewe, na ihe mmepụta ya bụ.
Site na usoro a, ị ga-enwe ike ịchọta ngwọta na-arụ ọrụ na mbọ mbụ. Ị nwere ike ijide n'aka maka izi ezi ya, n'ihi na ị họọrọ kpọmkwem omume gị dabere na ntinye enyere na data mmepụta achọrọ. Banye na ntọala nke ọrụ ọ bụla (ụdị data na ụkpụrụ nloghachi), karịa asụsụ azụmahịa na-edoghị anya (dị ka "ndị ọrụ debanyere aha").
Isi mmalite: www.habr.com
