اشتراک گذاری مفاهیم این جلسه ( آرایه ها)

پرسیده شده
فعالیت 1639 روز پیش
دیده شده 898 بار
1

با سلام خدمت دوستان و اساتید محترم ؛

چیزی که من از این جلسه درباره آرایه ها متوجه شدم اینه که type آرایه ها Object هست . میتونیم داخل آرایه ها از هر نوع داده ای استفاده کنیم (String,Number,Boolean,Object و....) با استفاده از خصوصیت toString() کل آرایه مورد نظرمون تبدیل به رشته میشه، و با استفاده از خصوصیت join هم نحوه جداسازی محتوای آرایه رو مشخص کنیم که میخوایم با کاما یا ستاره یا نقطه و... از هم جدا کنیم . نکته جالب تفاوت بین push و unshift بود برام که push آرایه جدید رو به آخر لیست آرایه ها اضافه میکنه و unshift آرایه جدید رو به اول لیست آرایه اضافه میکنه و نقطه مقابل اون ها هم به ترتیب pop و Shift بودن . و قسمت آخر Splice هست اتفاقا فکر کنم یکی از دوستان هم Splice رو متوجه نشده بود . همونطور که استاد محترم بهش اشاره کرد درواقع ما با استفاده از این متد میتونیم هم کار حذف رو انجام بدیم هم این یک آرایه جدید توی هر قسمت از لیست آرایه مون اضافه کنیم . خب اول اضافه کردن رو میگم ، توی splice دوتا پارامتر اجباری هست پارامتر اول ایندکس شروع  رو مشخص میکنه یعنی اینکه میگه شما مشخص میکنید از چندمین ایندکس آرایه مورد نظر شما از لیست آرایه ها شروع بشه ، میرسیم به پارامتر دوم اکثر مواقع برای عملیات اضافه کردن بهش مقدار صفر باید بدیم، چون اگر دقت کرده باشید وقتی بعد Splice پرانتز رو بازکنید ازتون میخواد دوتا پارامتر رو وارد کنید ، پارامتر دوم باید تعداد آرایه ای که میخواد حذف بشه رو باید مشخص کنید و از اونجایی که استفاده شما از splice برای اضافه کردن هست پس این مقدار رو برابر صفر قرار بدید. و اما برای حذف توی این قسمت باید باتوجه به تعداد آرایه ای که میخوایم حذف بشه مشخص بشه مثلا Splice(2,3 این میاد از آرایه دوم (باتوجه به ایندکس) سه تا آرایه بعدی رو حذف میکنه . ببخشید یکمی زیاد شد ولی خیلی خوشحالم اون نکته اصلی های هر جلسه که متوجه میشم رو با شما دوستان درمیون بیزارم امیدوارم شماهم اینطور باشید.      

فایل پیوست

0
حذف شده

خیلش ممنون از توضیحات فوق العادت :)

فقط نکته ای که هستش شما نوشتید که ارایه مورد نطر حدف یا اضافه میشه در واقع باید میگفتید که عنصر مورد نظر... در کل ممنون بابت وقتی که گزاشتی و این متن رو نوشتی:)

فایل پیوست

mostafa hedayat

توسط

mostafa hedayat

22 آبان 98

حذف شده
اختیار داری دوست من لطف دارید :) ، بله حق با شماست، عنصر مورد نظر داخل آرایه. برای اینکه حجم متن بتونم کنترل کنم از طرفی بتونم لب کلام رو برسونم از یه سری کلمات صرف نظر کردم. سپاس
2
حذف شده

تو js یه سری fundamental type داریم که با هاشون آشنا شدیم مثل string boolean number ... این ها غیر قابل تغییز هستن یعنی اگه a=5 باشه و a+=1 کنیم این a دیگه a قبلی نیست یعنی بلوک جدیدی در RAM برای a درست شده اصطلاحا بهش میگن immutable

ولی بقیه ی چیز ها مثل function ,array , object ,... همگی object هستن و همگی از نوادگان Object بزرگ میتی کومان هستن حتی همون صفحه ای که توش کد می زنید window اون هم object هستش 

شاید توجه نکردید ولی اگه (console.log(this  رو بزنید متوجه window میشید

object ها mutable یا تغییز پذیرند ولی چون pointer base هستند یعنی اگه 

var a= [1,2,3];
var b= a;
var b[0]=100;
console.log(a[0]); // a[0]=100

چون مقدار ذخیره شده در a در واقع یه ادرس از بلوکی هست که [1,2,3] در ان ذخیره شده و وقتی var b = a ادرس داخل a در b کپی میشه نه [1,2,3] و در واقع b اسم دومی میشه برای مقدار [1,2,3] 

پس موقع ساختن یه obj از obj دیگر استفاده از عملگر = کار درستی نیست به این نسبت دادن با عملگر = اصطلاحا shallow copy هم میگویند

فایل پیوست

amir yaghoobzadeh

توسط

amir yaghoobzadeh

23 آبان 98