আমার প্রতিক্রিয়া মূলত এখানে সর্বাধিক রেট প্রাপ্ত প্রতিক্রিয়াটির উপর ভিত্তি করে এবং আশা করা যায় যে প্রত্যেকে বুঝতে পারে (আমার গিটহাবের উপরও একই ব্যাখ্যা রয়েছে)। এই কারণেই মানচিত্রে তাঁর অভিশংসন কাজ করে:
Object.keys(images).map((key) => images[key] = 'url(' + '"' + images[key] + '"' +
')');
ফাংশনটির উদ্দেশ্য হ'ল কোনও বস্তু গ্রহণ করা এবং বিন্যাস ছাড়াই সমস্ত বস্তুর (বস্তু এবং অ্যারেগুলিতে একইভাবে) উপলব্ধ পদ্ধতি ব্যবহার করে অবজেক্টের মূল বিষয়বস্তুগুলি সংশোধন করা। জেএসের প্রায় প্রতিটি জিনিসই একটি অবজেক্ট এবং সেই কারণে উত্তরাধিকারের পাইপলাইনের নিচে থাকা উপাদানগুলি লাইনটি আপ করার জন্য উপলভ্যদের প্রযুক্তিগতভাবে ব্যবহার করতে পারে (এবং এটি বিপরীতে প্রদর্শিত হবে)।
এটি কাজ করার কারণটি। ম্যাপ ফাংশনগুলির কারণে একটি অ্যারে পুনরুদ্ধার করে যা আপনি কোনও বিদ্যমান অবজেক্টকে কেবল পরিবর্তিত করার পরিবর্তে কোনও অ্যারের সুস্পষ্ট বা অন্তর্নিহিত রিটার্ন সরবরাহ করেন। আপনি অবজেক্ট.কিগুলি ব্যবহার করে অবজেক্টটিকে একটি অ্যারে মনে করার জন্য প্রোগ্রামটি মূলত কৌতুক করেন যা আপনাকে পৃথক কীগুলির সাথে সম্পর্কিত মানগুলির সাথে মানচিত্রের ক্রিয়াটি ব্যবহার করার অনুমতি দেবে (আমি আসলে দুর্ঘটনাক্রমে অ্যারেগুলি ফিরিয়ে দিয়েছি তবে এটি ঠিক করেছি)। যতক্ষণ না স্বাভাবিক অর্থে কোনও রিটার্ন আসে না, ততক্ষণ অরিজিনাল এবং অজানা হিসাবে প্রোগ্রামিং হিসাবে পরিবর্তিত মূল অবজেক্টের সাথে কোনও অ্যারে তৈরি করা হবে না।
এই নির্দিষ্ট প্রোগ্রামটি ইমেজ নামক একটি অবজেক্ট নেয় এবং এর কীগুলির মান নেয় এবং অন্য ফাংশনের মধ্যে ইউআরএল ট্যাগ যুক্ত করে। আসল এটি:
var images = {
snow: 'https://www.trbimg.com/img-5aa059f5/turbine/bs-md-weather-20180305',
sunny: 'http://www.cubaweather.org/images/weather-photos/large/Sunny-morning-east-
Matanzas-city- Cuba-20170131-1080.jpg',
rain: 'https://i.pinimg.com/originals/23/d8
/ab/23d8ab1eebc72a123cebc80ce32b43d8.jpg' };
... এবং পরিবর্তিত এটি হ'ল:
var images = {
snow: url('https://www.trbimg.com/img-5aa059f5/turbine/bs-md-weather-20180305'),
sunny: url('http://www.cubaweather.org/images/weather-photos/large/Sunny-morning-
east-Matanzas-city- Cuba-20170131-1080.jpg'),
rain: url('https://i.pinimg.com/originals/23/d8
/ab/23d8ab1eebc72a123cebc80ce32b43d8.jpg')
};
কোনও প্রত্যাবর্তন না পাওয়া অবধি অবজেক্টের মূল কাঠামোটি সাধারণ সম্পত্তি অ্যাক্সেসের অনুমতি দিয়ে অক্ষত রয়েছে। এটি স্বাভাবিকের মতো কোনও অ্যারে ফেরত দেবেন না এবং সবকিছু ঠিক থাকবে। লক্ষ্যটি যা চেয়েছিল এবং যা কিছুই নয় তার মূল মানগুলি (চিত্রগুলি [কী]) পুনরায় নির্ধারণ করা। যতদূর আমি জানি, অ্যারে আউটপুট প্রতিরোধের জন্য এখানে চিত্রগুলির [REASSIGNMENT] থাকতে হবে এবং কোনও অ্যারে ফেরত দেওয়ার জন্য কোনও স্পষ্ট বা সুস্পষ্ট অনুরোধ নেই (ভেরিয়েবল অ্যাসাইনমেন্টটি এটি করে এবং আমার জন্য পিছনে পিছনে ছিল)।
সম্পাদনা করুন:
মূল অবজেক্টটি সংশোধন করা এড়াতে নতুন অবজেক্ট তৈরি সম্পর্কিত তাঁর অন্যান্য পদ্ধতিতে সম্বোধন করা (এবং দুর্ঘটনাক্রমে আউটপুট হিসাবে কোনও অ্যারে তৈরি এড়াতে পুনরায় নিয়োগটি এখনও প্রয়োজনীয় বলে মনে হচ্ছে)। এই ফাংশনগুলি তীর সিনট্যাক্স ব্যবহার করে এবং যদি আপনি কেবল ভবিষ্যতের ব্যবহারের জন্য একটি নতুন অবজেক্ট তৈরি করতে চান।
const mapper = (obj, mapFn) => Object.keys(obj).reduce((result, key) => {
result[key] = mapFn(obj)[key];
return result;
}, {});
var newImages = mapper(images, (value) => value);
এই ফাংশনগুলি যেভাবে কাজ করে তা হ'ল:
ম্যাপএফএন ফাংশনটি পরে যুক্ত করার জন্য নেয় (এই ক্ষেত্রে (মান) => মান) এবং ম্যাপএফএন-তে (কী হিসাবে তার মতো রিটার্ন মান পরিবর্তন করে যদি দুটি দ্বারা গুণিত হয়) সেই কীটির মান হিসাবে (বা দুটি দ্বারা গুণিত হয়) হিসাবে যা কিছু সঞ্চিত থাকে কেবল তা ফিরিয়ে দেয় ( obj) [মূল],
এবং তারপরে [কী] = mapFn (আপত্তি) [কী] ফলাফলের সাথে সম্পর্কিত মূল মানের পুনরায় সংজ্ঞা দেয়
এবং ফলাফল অনুযায়ী সঞ্চালিত অপারেশনটি ফেরত দেয় (.ড্রেস ফাংশনের শেষে বন্ধনীগুলিতে অবস্থিত সংযোজক)।
এগুলি সমস্তই নির্বাচিত অবজেক্টে সম্পাদিত হচ্ছে এবং এখনও সেখানে ফিরে আসা অ্যারের জন্য একটি অন্তর্নিহিত অনুরোধ হতে পারে না এবং কেবলমাত্র আমি যতটা বলতে পারি মানগুলি পুনরায় অর্পণ করার সময় কাজ করে। এর জন্য কিছু মানসিক জিমন্যাস্টিকস প্রয়োজন তবে উপরে দেখা যায় এমন কোডের লাইনগুলি হ্রাস করে। আউটপুট ঠিক একই রকম যা নীচে দেখা যায়:
{snow: "https://www.trbimg.com/img-5aa059f5/turbine/bs-
md-weather-20180305", sunny: "http://www.cubaweather.org/images/weather-
photos/l…morning-east-Matanzas-city-Cuba-20170131-1080.jpg", rain:
"https://i.pinimg.com/originals/23/d8
/ab/23d8ab1eebc72a123cebc80ce32b43d8.jpg"}
মনে রাখবেন এটি নন-সংখ্যাগুলির সাথে কাজ করেছে। আপনি মানচিত্রএফএন ফাংশনটিতে ভ্যালুটি ফিরে আসার মাধ্যমে যে কোনও বস্তুর নকল করতে পারেন।
Object.keys
, যার কোনও সুসংজ্ঞাত অর্ডার নেই। এটি সমস্যাযুক্ত হতে পারে, আমিObject.getOwnPropertyNames
পরিবর্তে এটি ব্যবহার করার পরামর্শ দিই ।