Კომპიუტერები, Პროგრამირების
JavaScript მასივი და მისი შექმნის. ყველაფერი JavaScript კოლექტორები
ამ სტატიაში ჩვენ შევხედოთ JavaScript მასივი, მისი კომპონენტები. JavaScript არის სრულყოფილი სცენარი ორიენტირებული ენა განკუთვნილია პროგრამირების. ფაქტობრივად, ის ახორციელებს ECMAScript ენის (სტანდარტული ECMA-262).
Of JavaScript? იგი გამოიყენება როგორც ჩართული ენის, რათა დადგინდეს გზას პროგრამა საგანი განაცხადი. იგი გვხვდება ბრაუზერში იგი გამოიყენება იქ, როგორც სკრიფტინგის ენა, რომელიც იძლევა ვებ გვერდების ინტერაქტიული.
ძირითადი არქიტექტურული თვისებები ამ პროდუქტის არის დინამიური და სუსტი აკრეფით, avtoupravlenie მეხსიერება იდეალური პროგრამირების ფუნქციები, რომლებიც ობიექტების პირველი გამონადენი.
სინამდვილეში, JavaScript გავლენა სხვადასხვა მიზეზების გამო, რადგან განვითარების შევქმნათ ენის მსგავსი Java, მაგრამ მარტივი პროგრამებში. სხვათა შორის, JavaScript, ენის არ ფლობს კომპანია ან ორგანიზაცია, რომელიც ხდის განსხვავდება რაოდენობა პროგრამირების სტილის გამოიყენება ვებ პროგრამისტებს.
აღსანიშნავია, რომ JavaScript - ის რეგისტრირებული სავაჭრო ნიშნებია Oracle Corporation ჯგუფი.
რა არის მასივი?
მოუწოდა მასივი მონაცემები ტიპის, რომელიც ინახავს დანომრილი ღირებულებებს. თითოეული ასეთი მნიშვნელობა არის მოხსენიებული, როგორც მასივი კომპონენტი და ციფრი, რომელიც ავალდებულებს კომპონენტი, რომელსაც ეწოდება ინდექსი. JavaScript-მასივი untyped. ეს ნიშნავს, რომ მყარი ნაწილები შეგიძლიათ რასაც ტიპის, სხვადასხვა ნაწილები, რომლებიც იგივე მასივი, სრულიად განსხვავებული ტიპის.
გარდა ამისა, JavaScript მასივი არის დინამიური და ნათქვამია, რომ ფიქსირებული ზომა არ უნდა იყოს გამოცხადებული. შემდეგ დასძინა, ახალი ნაწილები ნებისმიერ დროს.
მყარი წარმოების
გამოყენება JavaScript ენა შექმნას მასივი საკმაოდ რთულია. არსებობს ორი მეთოდი ამ. პირველი მოიცავს წარმოების მასივი გამოყენებით ლიტერატურული - კვადრატულ ფრჩხილებში, შიგნით რაც არის განთავსებული ნუსხა, იყოფა მძიმეები.
- var ცარიელი = []; // ცარიელი მასივი;
- var numers = [4, 1, 2, 5]; // მასივი ხუთ ციფრული კომპონენტები;
- var diff = [1.5, ცრუ, «ტექსტი"]; // მასივში სამი ელემენტები სხვადასხვა ტიპის.
როგორც წესი, ეს არ არის საჭირო, რომ იყოს მარტივი ღირებულებები (რიგები და ნომრები). მას ასევე შეუძლია იყოს ნებისმიერი სხვა გამონათქვამები, მაგალითად, ობიექტი literals, სხვა ფუნქციებს და მასივები.
მეორე გზა შექმნათ მასივი დიზაინერი მოვუწოდებთ Array (). მოიწვიოს მას ერთი სამი მეთოდები:
- ზარის დიზაინერი გარეშე არგუმენტები: var b - new Array (). ის უზრუნველყოფს შექმნის ცარიელი მასივი ექვივალენტი ცარიელი ლიტერატურული [].
- დიზაინერი ნათლად მიუთითებს, ღირებულება n კომპონენტები მასივი: var b = new Array (1, 3, 5, 8, "ხაზი», მართალია). ამ შემთხვევაში, დიზაინერი სია წარუდგინა არგუმენტები, რომლებიც გარდაიქმნება ახალ მასივი კომპონენტები. არგუმენტები იწერება მასივი არის ადგილი, სადაც მითითებული.
- განსაზღვრა ფარგლებს შემდგომი მინიჭების ღირებულებები. ეს კეთდება განსაზღვრით გამოვლენის მასივი რიგი მრგვალ ფრჩხილებში: var b = new Array (5). ამ მეთოდით გამოვლენის მოიცავს გამოყოფის მასივი საჭირო თანხების კომპონენტების (რომელთაგან თითოეული არის ჩამოთვლილი როგორც undefined) შესაძლებლობა მინიჭების ღირებულებების პრეზენტაცია. ეს ფორმა ჩვეულებრივ გამოიყენება წინასწარ გამოყოფს Javascript მასივი, რომლის სიგრძე წინასწარ ცნობილია.
ჩაწერა, კითხულობს და დასძინა დეტალები მასივი
მიიღეთ კომპონენტების მასივი შეიძლება გავლით ოპერატორი []. სხვათა შორის, ყველა კომპონენტი JavaScript, ნულიდან, დათვლილია. მიიღოს საჭირო ელემენტები, მიუთითოს თავისი ნომერი კვადრატულ ფრჩხილებში. როგორც წესი, ელემენტი შეიძლება შეიცვალოს. JavaScript- ის დამატებას მასივი, ეს არის საკმარისი დაავალოს ახალი მნიშვნელობა.
აღსანიშნავია, რომ JavaScript მასივების შენახვა შეუძლია ნებისმიერი რაოდენობის ელემენტები ნებისმიერი სახის.
ხანგრძლივობა მასივი
ასე რომ, ჩვენ ვიცით, რა JavaScript. სიგრძეზე მასივი ზოგადად საინტერესო მოვლენაა. მოდი, უფრო დეტალურად. ყველა მერყეობს აგებულია გამოყენებით Array დიზაინერი () და აღმოჩენილი მეშვეობით ლიტერატურული მასივი აქვს კონკრეტული სიგრძე ქონება, რომელიც არ დატოვებს საერთო რაოდენობის ელემენტები იშურებს. მას შემდეგ, რაც მასივი შეიძლება გაურკვეველი დეტალები (undefined დანიშნული), უფრო ზუსტი გამოხატულება ჟღერს ასე: Quality სიგრძე ყოველთვის ერთით მეტია უდიდესი ნომერი (ინდექსი) მასივი კომპონენტი. ხარისხის სიგრძე მორგებული ავტომატურად, დარჩენის ზუსტი გამოჩენა მასივი ახალი დეტალები.
არაა საბოლოო კომპონენტი მასივი, შეგიძლიათ გამოიყენოთ სიგრძე ქონება.
ბოლო ნაწილი არის მაჩვენებელი ერთი ნაკლები ზომის მასივი. მას შემდეგ, რაც countdown დაიწყოს ყოველთვის ნულიდან. ოჰ, ეს JavaScript! ხანგრძლივობა მასივი დამოკიდებულია მისი ზუსტი რაოდენობის ელემენტები. ამიტომ, თუ თქვენ არ იცით, თუ რამდენი უნდა იყოს, მაგრამ თქვენ უნდა ჩართოთ საბოლოო ელემენტს მასივი, აუცილებელია მიმართოს ჩანაწერი: v.length - 1.
Iterate მასივი ნაწილები
ძალიან ხშირად, სიგრძე ქონება გამოიყენება iterate მეტი მასივი ნაწილების ციკლი
- var ხილი = [ «strawberry", "ატმის", "ვაშლის", "ბანანის"];
- for (var i = 0; i
- document.write (ხილი [i] + «...»).
ამ მაგალითში ჩანს, რომ კომპონენტები ეწყობა მუდმივად და იწყება პირველი ნაწილი, რომელიც ფლობს ინდექსი ნულოვანი. თუ ეს არ არის იმ შემთხვევაში, ადრე მოუწოდებს თითოეულ ელემენტს მასივი უნდა შემოწმდეს, თუ იგი არ არის დადგენილი.
ციკლი ასევე ზოგჯერ გამოიყენება ინიციალიზაცია კომპონენტები.
ზრდა და truncation მასივი
მაინტერესებს, რამდენად გამოყენებით ენის JavaScript string მასივი დაამატოთ? In მუშაობის პროცესში მასივები, სიგრძე სიგრძე ავტომატურად აუმჯობესებს ხარისხის, რის გამოც ჩვენ უნდა იზრუნოს საკუთარ თავს. აუცილებელია გავიხსენოთ ერთი დეტალი - სიგრძე ქონება ხელმისაწვდომი არ არის მხოლოდ წაკითხვადი, მაგრამ ჩანაწერი. თუ ხარისხი სიგრძე ატრიბუტის მნიშვნელობა, რომელიც აძლევს ზომა მიმდინარე, მასივი მცირდება წინასწარ ღირებულება. ნებისმიერი კომპონენტი, რომელიც არ შედის ახალ სპექტრს მაჩვენებლების, recline და მათი ღირებულებები იკარგება, მაშინაც კი, თუ მოგვიანებით დაბრუნდნენ სიგრძე - ღირებულებები არ აღდგება.
უბრალოდ გარკვევა მასივი, როგორც: foo.length = 0.
თუ ხარისხის პერსპექტივაში სიგრძეზე მეტია მისი მიმდინარე ღირებულების, ბოლოს მასივი იქნება ახალი, ამოუცნობი კომპონენტი, რომელიც გაიზრდება, რომ სასურველი ზომა.
წაშლის მასივი დეტალები
წაშლა ოპერატორი მიუთითებს კომპონენტი მასივი undefined, მაგრამ ეს გრძელდება ამ შემთხვევაში. თუ გსურთ ამოიღონ JavaScript ელემენტს მასივი ისე, რომ დარჩენილი ნაწილი გადაინაცვლებს ვაკანტური ადგილი, თქვენ უნდა გამოვიყენოთ ერთი გზა პროგნოზირება მასივი. მეთოდი Array.shift () ხსნის პირველი კომპონენტი, pop () - შეწყვეტის კომპონენტი და მეთოდი Splice () - ერთ-ერთი კომპონენტი ან დიაპაზონი სადმე მასივი.
მრავალგანზომილებიანი მასივები
როგორც ჩანს, ჩვენ გვესმის, პატარა, რა JavaScript. ორი განზომილებიანი მასივები - რომ უნდა ჩაითვალოს შემდგომი. გახსოვთ, რომ JavaScript კოლექტორები შეიძლება შეიცავდეს როგორც კომპონენტები სხვა ნივთები? ეს ფუნქცია გამოიყენება წარმოების მრავალ განზომილებიანი მასივები. ეწვევა კომპონენტები მასივი მასივები საკმარისია მიმართოს ფრჩხილებში ორჯერ.
ასოციაციური მასივების
ახლა ჩვენ ისწავლონ სასაქონლო ნიშნის იყენებს JavaScript ასოციაციური მასივების. ამისათვის ჩვენ უნდა გავერკვეთ თეორია: ასოციაციური მასივების უწოდებენ hash მაგიდები. მადლობა მათ, ნაცვლად ინდექსი რიგები მიმართა. ამგვარი სტრუქტურების თქვენში გამოყენების სახელი თვისებები მარტივი ობიექტი, მაგრამ ამ განსახიერება, სამუშაოს შესრულების მასივი ფორმატში. მას შემდეგ, რაც არ არსებობს გზები მანიპულირება JavaScript მასივები ასოციაციური, ისინი გამოიყენება გაცილებით ნაკლებად ხშირად, ვიდრე ჩვეულებრივი. აღსანიშნავია, რომ ჯერ კიდევ შეიძლება იყოს სასარგებლო მონაცემთა შენახვისა და გაამარტივებს შენახვის ნაწილად, რომელიც შეიძლება იქნეს.
გამომავალი მასივი
და ახლა ჩვენ ისწავლიან JavaScript სისტემა? გამოყვანის მასივი ფანჯარა (ეკრანზე), ისევე როგორც გამომავალი ღირებულებების მასივი კომპონენტები.
თუ პროგრამა გსურთ ცარიელია ღირებულებები ყველა კომპონენტი, მაშინ ეს არის მოსახერხებელი ვრცელდება ინსტრუქციები. საინტერესოა, რომ ცვლადი counter წესების გამოყენება, ამავე დროს, როგორც კომპონენტი მასივი ინდექსი.
დასუფთავების
რათა გავფილტროთ მასივი JavaScript, თქვენ უნდა აღადგინოთ მისი სიგრძე:
- var myArray = [1, 2, 5, 23];
- myArray.length = 0.
შემდეგ აჩვენებს განხორციელების დანიშნულების ნათელი () ფარგლებში, JavaScript-Prototype:
- ნათელია: function () {;
- this.length = 0;
- დაბრუნდეს ამ;
- }.
დამატება და ამოშლა კომპონენტები
ისე, ჩვენ ვაგრძელებთ შემდგომი შეისწავლონ ამ მღელვარე JavaScript ენაზე. მასივი ელემენტს და მაქსიმალურად ამოიღონ და დამატება ისევე, როგორც ჩვეულებრივი თვისებები სხვა ობიექტები. მაგრამ არსებობს გარკვეული განსხვავებები: დასძინა რიცხვითი თვისებები ხარისხის სიგრძე შეიძლება განსხვავდება, მაგრამ მოდიფიკაცია თვისებები სიგრძე შეიძლება აღმოიფხვრას ციფრული ხარისხის. პრინციპში, როგორც დააყენოთ ალგორითმი კოლექტორები ასეთია:
- როდესაც დასძინა ციფრული უცნობი თვისებები i, თუ ხანგრძლივობა ტოლია ან ნაკლებია, ვიდრე მე, სიგრძე განისაზღვრება i + 1.
- როდესაც თქვენ შეცვალოს ხარისხის სიგრძე შეასრულოს შემდეგი ნაბიჯები: თუ დანიშნული მნიშვნელობა ნაკლებია ნულოვანი, მაშინ აგდებს RangeError. აღმოფხვრის ყველა ციფრული ხარისხის ინდექსები, რომლებიც ტოლია ახალი სიგრძე, და მეტი.
რეალურად ამოიღონ JavaScript მასივი ელემენტს მარტივია. ყოველივე ამის შემდეგ, კი მიიღწევა სიგრძე, თქვენ უნდა ამოიღონ "ზედმეტი" კომპონენტები მისგან. აქედან დასუფთავების ვარიანტი მასივი. იმ შემთხვევაში, თუ ცვლადი ენიჭება ახალი ცარიელი მასივი, სხვადსხვა მიზეზის გამო, არ დაკმაყოფილდა, და აუცილებელია, რომ აღადგინოთ მიმდინარე, მისი ხარისხი არ არის საკმარისი სიგრძე უნდა მივანიჭოთ მნიშვნელობა ნულოვანი.
unshift მეთოდები, ცვლა, საესტრადო და ბიძგი
მიუხედავად იმისა, რომ კომპონენტების მასივი შეიცვალოს ხელით, ბევრი რეკომენდაცია, რათა გამოიყენონ ეს ჩაშენებული მეთოდები. ეს არის ამ ნიუანსი გარანტიას სწორი ღირებულება ხარისხი და ნაკლებობა სიგრძე მასივი შეჭრა. სხვათა შორის, ხარისხის სწორი სიგრძე შეესაბამება რაოდენობის კომპონენტები.
პროცესი გადადის დააყენებს ბოლოს მასივი გადაცემული ნივთები. პოპ უკან პროცესი იძლევა საბოლოო კომპონენტი და ხსნის მას.
ზოგადად, Internet Explorer ფარგლებში მერვე ვერსიას unshift შეიძლება დაბრუნდეს undefined, სხვა ბრაუზერებში - ახალი ღირებულება სიგრძე. ასე, რომ დაბრუნების ღირებულება საწყისი unshift უკეთესი არ მაქვს.
გარდა ამისა, და აღმოფხვრის ნაწილები შუა მასივი
თუ გსურთ წაშალოთ მასივი JavaScript, თქვენ უნდა მიიღოს? ცნობილია, რომ მეთოდი ხელმოწერა splice Array.prototype.splice.
ის დატოვებს მასივი deleteCount კომპონენტები, დაწყებული ინდექსი დასაწყისია. თუ გაივლის უფრო მეტია, ვიდრე ორი არგუმენტები, ყველა მომდევნო არგუმენტები მასივი მოწყობილი ადგილი ლიკვიდირებული. თუ დაწყების მინუსი, ინდექსი, რომელიც განაახლებს გაყვანა იქნება ტოლი სიგრძის + დაიწყება. დავბრუნდეთ მასივი დისტანციური ელემენტები ხდება.
ფაქტობრივად, გამოყენებით splice მეთოდი, ეს შესაძლებელია ამოიღონ კომპონენტების შუა მასივი ან დაამატოს ნებისმიერი რაოდენობის სადმე მასივი.
იმ მარტივი განსახიერება, თუ ეს აუცილებელია ამოიღონ კომპონენტი ინდექსი i, მასივი უნდა მოითხოვოს splice მეთოდით პარამეტრების i და 1.
პრინციპში, მეორე ვარიანტი splice მეთოდი არ არის სავალდებულო, მაგრამ ქცევის ფუნქცია ერთი არგუმენტი თითოეული ბრაუზერის განსხვავებულია.
მაგალითად, Firefox, Opera ბოლო ვარიაციები, ყველა დეტალი ბოლომდე მასივი მოიხსნება Safari და Chrome.
არსებობს ერთი კომპონენტი არის აღმოფხვრილი ი. პირველი ვარიაცია შეუძლებელია პროგნოზირება ქცევის Opera - მოიხსნება ერთი ნივთი ინდექსი დაწყება - 1. ამიტომ ის ყოველთვის საჭირო ამ მეთოდით გადასცეს მინიმუმ ორი კომპონენტი.
გასაღებები
რა თქმა უნდა, სწავლის JavaScript, ასოციაციური მასივების, როგორც ზემოთ აღინიშნა, თქვენ ასევე უნდა იყოს შეუმჩნეველი. ეს არის აბსტრაქტულ ინფორმაცია (ინტერფეისი მონაცემებით მაღაზიაში), რომელიც საშუალებას იძლევა შეინახოთ წყვილი ფორმა "(მთავარი, მნიშვნელობა)" და ოპერაციის დასძინა წყვილი მხარდაჭერა, ასევე წაშლის და ძიებაში გასაღები წყვილი:
- ძებნა (გასაღები).
- INSERT (მნიშვნელობა, ძირითადი).
- წაშლა (გასაღები).
ითვლება, რომ ასოციაციურ მასივში ვერ გადარჩენა ორი წყვილი მსგავსი გასაღებები. რამდენიმე k + vv ღირებულება დაკავშირებულია ძირითად k. სემანტიკა და აქ აღნიშნული ოპერაციების სხვადასხვა შესრულება ამგვარი მასივების შეიძლება იყოს განსხვავებული.
ამდენად, იპოვოს ოპერაცია (გასაღები) ბრუნდება მნიშვნელობა დაკავშირებულია მოცემული გასაღები, ან კონკრეტული ობიექტი UNDEF, რაც იმას ნიშნავს, რომ ღირებულება დაკავშირებულია მოცემული გასაღები, გასულია. ორი სხვა ქმედებები არ დაბრუნდება (გარდა მონაცემები იმის შესახებ, თუ არა ოპერაცია წარმატებული იყო).
საერთოდ, იმ თვალსაზრისით, ინტერფეისი, ასოციაციურ მასივში მოსახერხებელია განიხილოს, როგორც მარტივი მასივი, რომ, როგორც მაჩვენებელი შეიძლება გამოყენებულ იქნას არა მხოლოდ რიცხვები, არამედ ღირებულებების სხვა სახის - მაგალითად, სიმებიანი.
სხვათა შორის, მხარდაჭერა ამგვარი მასივების ეპყრობიან იქ უამრავი მაღალი დონის პროგრამირების ენებზე, როგორიცაა PHP, Perl, Ruby, Python, TCL, JavaScript და სხვა. ენებზე, რომ არ ჩაშენებული ინსტრუმენტები მუშაობა ასოციაციური მასივების, ის უზარმაზარი რაოდენობის რეალიზაცია სახით ბიბლიოთეკები.
მაგალითად, ასოციაციურ მასივში გამოდგება სატელეფონო დირექტორია. ამ განსახიერება, ღირებულება არის "F. IO + e ", და გასაღები - ტელეფონის ნომერი. ერთი ტელეფონის ნომერი ერთი მთავარი, მაგრამ ერთ ადამიანს შეუძლია ფლობდეს სხვადასხვა ნომრები.
ასოცირებული გაფართოება
აღსანიშნავია, რომ ყველაზე ცნობილი გაგრძელება შეიცავდეს შემდეგ მონაცემებს:
- ყოველ - «სასეირნოდ» ყველა ზოგავს წყვილი.
- CLEAR - წაშლა ყველა მასალა.
- MIN - იპოვოს წყვილი ყველაზე დაბალი გასაღები ღირებულება.
- MAX - იპოვოს წყვილი უდიდესი გასაღები ღირებულება.
ამ ბოლო ორ შემთხვევაში თქვენ უნდა გასაღებები მითითებულ შედარებით ეფექტი.
რეალიზაცია ასოციაციური მასივების
არსებობს ბევრი სხვადასხვა შესრულება ასოციაციურ მასივში. ყველაზე გავრცელებული განხორციელება შეიძლება დაფუძნებული იყოს მარტივი მასივი, რომლის კომპონენტები წყვილი (ღირებულება გასაღები). დააჩქაროს ძებნის ფუნქცია, შეგიძლიათ მოწყობა კომპონენტები მასივი გასაღები მოძიება და განხორციელება გამოყენებით ორობითი ძებნა. მაგრამ ეს გაიზრდება დროის საჭირო დაამატოთ ახალი წყვილი, როგორც უნდა "ბიძგი" მასივი კომპონენტი, რომელიც გამოჩნდა ცარიელ საკანში ჩაალაგე ახალი ჩანაწერი.
ყველაზე ცნობილი განხორციელება, ეფუძნება სხვადასხვა ძებნის ხეები. მაგალითად, ტიპიური მოსმენით ოთახი STL C ++ ენის Trailers რუკა ხორციელდება საფუძველზე შავი და წითელი. In Ruby, სტილის, TCL, Python იყენებს ერთი ტიპის hash მაგიდები. არსებობს სხვა განხორციელება.
ზოგადად, თითოეული განხორციელება აქვს თავისი დადებითი და უარყოფითი მხარეები. მნიშვნელოვანია, რომ სამივე ოპერაციები შესრულდა, საშუალოდ, ყველაზე ცუდ პერიოდში ნიუანსი შესახებ (შესვლა N), სადაც n - მიმდინარე ნომერი გადარჩენა დადგა. ერთიან ძებნა ხეები (მათ შორის შავი და წითელი ხე), ეს მდგომარეობა არის კმაყოფილი.
ცნობილია, რომ შესრულება ეფუძნება hash მაგიდები, საშუალო დრო განისაზღვრება, როგორც D (1), რომელიც უკეთესია, ვიდრე ქმედებები საფუძველზე ძებნა ხეები. რა თქმა უნდა, ეს არ იძლევა გარანტიას მაღალი სიჩქარით შესრულების ცალკეული ოპერაციების: INSERT აქცია დროს უარეს შემთხვევაში, აღნიშნა, როგორც O (N). INSERT პროცესი ხორციელდება დიდი ხნის განმავლობაში, როდესაც პასუხისმგებლობა თანაფარდობა აღწევს უმაღლესი წერტილი, და არ არის საჭირო, რეკონსტრუქცია hash მაგიდა ინდექსი.
სხვათა შორის, ამ განცხადებების hash ცუდია, რომ ამ საფუძველზე შეუძლებელია შეასრულოს სწრაფი დამატებით ზომებს MAX, მინ და ალგორითმი მოძებნოთ ყველა ზოგავს წყვილი კლებადობით ან აღმავალი გასაღებები.
Similar articles
Trending Now