Chrome কনসোল ব্যবহার করা, এটি আমার ইনপুট এবং আউটপুট:
[0].map(Array);
[[0, 0, [0]]]; // output
এখানে কি হচ্ছে?
সম্পাদনা
কারণ এটি আমাকে কৌতূহলী করে তোলে কারণ কিছু
[0].map(String);
ফিরে আসবে
["0"];
এবং না
["0", "0", "String"]
Chrome কনসোল ব্যবহার করা, এটি আমার ইনপুট এবং আউটপুট:
[0].map(Array);
[[0, 0, [0]]]; // output
এখানে কি হচ্ছে?
সম্পাদনা
কারণ এটি আমাকে কৌতূহলী করে তোলে কারণ কিছু
[0].map(String);
ফিরে আসবে
["0"];
এবং না
["0", "0", "String"]
['10', '10', '10'].map(parseInt)
.map()আচরণ: stackoverflow.com/questions/14528397/… সাধারণভাবে, .map()একাধিক যুক্তি গ্রহণকারী ফাংশনগুলি ব্যবহার করার সময় আপনাকে সতর্কতা অবলম্বন করতে হবে ।
[0].map(console.log)
উত্তর:
.map()ফাংশন কল করছে Array()তিন আর্গুমেন্ট, এরে উপাদান যা মান ফাংশন 0যে উপাদান সূচক,, এছাড়াও 0, এবং সমগ্র অ্যারের একটি রেফারেন্স।
সুতরাং এটি এটি করার মতো:
var a = [0];
var index = 0
Array(a[index], index, a); // create array with three elements
ততক্ষণে ফিরে Array()আসা অ্যারে .map()তৈরি করা অ্যারের প্রথম উপাদান হয়ে যায় , সুতরাং আপনার [[0, 0, [0]]]ফলস্বরূপ বাসা বাঁধার অতিরিক্ত স্তর ।
আপনার সম্পাদনা সম্পর্কিত সম্পাদনা করুন: আপনি যখন বলেন [0].map(String);যে String()একই একই তিনটি যুক্তির সাহায্যে ডাকা হয় String(a[index], index, a)তবে String()ফাংশনটি প্রথম যুক্তি ব্যতীত সমস্ত উপেক্ষা করে, সেখানে Array()সমস্ত সরবরাহিত যুক্তি ব্যবহার করে।
প্রথমত , Arrayঅ্যারে তৈরি করতে একটি ফাংশন হিসাবে ব্যবহার করা যেতে পারে:
var arr = Array(1, 2, "Hello");
console.log(arr); // [1, 2, "Hello"]
দ্বিতীয়ত , mapতার কলব্যাকের জন্য তিনটি পরামিতি পাস করে: উপাদান, অ্যারে থেকে তার সূচক এবং অ্যারে নিজেই
সুতরাং , যেহেতু আপনার অ্যারেতে একটি উপাদান রয়েছে, রেখাটি:
[0].map(Array);
সমান:
[Array(0, 0, [0])]; // the element 0 in the original array will be mapped into Array(0, 0, [0])
আপনি প্রশ্ন আপডেট করার পরে। অন্যান্য উত্তরগুলি আপনাকে মানচিত্র সম্পর্কে তথ্য সরবরাহ করে
কেন অ্যারে এবং স্ট্রিং কনস্ট্রাক্টরগুলিতে দেখতে আলাদা answer
স্ট্রিং কনস্ট্রাক্টর অ্যারে নতুন অ্যারে (এলিমেন্ট 0, এলিমেন্ট 1 [, ... [[এলিমেন্টএন]]) এর সাথে 1 পরামিতি স্ট্রিং (জিনিস) গ্রহণ করেন
.map(Number)প্রতিটি আইটেমের মতো কিছু ফিরিয়ে দেওয়ার পরিবর্তে প্রতিটি আইটেমকে একটি সংখ্যায় রূপান্তরিত করার কারণ একই কারণ [3, 2, [4, 1, 3]]।
এই কল
[0].map(Array);
আপনাকে একই ফল দেয় যেমন আপনি কিছু লিখেছেন:
[0].map(function (value, index, array) {
return Array(value, index, array);
})
মানচিত্র ফাংশনটি তিনটি পরামিতি সহ অ্যারে ফাংশনটিকে কল করছে : উপাদানটির মান, উপাদানটির সূচক এবং পুরো অ্যারে। এই কলটি আপনাকে Array3 টি উপাদানের সাথে অ্যারে প্রদান করবে: মান (সংখ্যা 0), সূচক (সংখ্যা 0), পুরো অ্যারে ( [0])।
এবং এই নতুন অ্যারেটি মূল অ্যারেতে আবৃত রয়েছে কারণ আপনি মূল উপাদানটিকে (সংখ্যা 0) নতুন উপাদানকে ম্যাপ করেছেন (3 টি উপাদানের অ্যারে)
দ্রষ্টব্য: আপনি কেবল প্রথম প্যারামিটার ব্যবহার করতে অভ্যস্ত হতে পারেন
array.map(function (a) { return a * a; });
বা সূচক পেতে মাত্র দুটি ব্যবহার করে
array.map(function (item, index) { return "index=" + index + ", value=" + item; });
তবে আপনাকে মনে রাখতে হবে যে mapএখনও 3 টি পরামিতি সরবরাহ করে আপনি কেবল তাদের কলব্যাক ফাংশনে এগুলি উপেক্ষা করেন। কোডটি পছন্দ করার কারণও এটি:
[0].map(String);
প্রত্যাবর্তন
["0"]
এর কারণ স্ট্রিং ফাংশন কেবল প্রথম প্যারামিটার সম্পর্কে যত্ন করে এবং অন্যান্য উত্তীর্ণ পরামিতিগুলিকে উপেক্ষা করে। ফোন দিলে
String(11, "Some", "other", "ignored", "parameters")
আপনি এখনও পাবেন
"11"