আমি আমার রেডাক্স প্রকল্পের জন্য একটি গভীর অনুলিপি মানচিত্র পদ্ধতি তৈরি করার চেষ্টা করছি যা অ্যারের পরিবর্তে অবজেক্টের সাথে কাজ করবে। আমি পড়েছি রেডাক্সে প্রতিটি রাজ্যের আগের রাজ্যে কোনও পরিবর্তন করা উচিত নয়।
export const mapCopy = (object, callback) => {
return Object.keys(object).reduce(function (output, key) {
output[key] = callback.call(this, {...object[key]});
return output;
}, {});
}
এটি কাজ করে:
return mapCopy(state, e => {
if (e.id === action.id) {
e.title = 'new item';
}
return e;
})
তবে এটি অভ্যন্তরীণ আইটেমগুলিকে গভীরভাবে অনুলিপি করে না তাই আমার এটির জন্য টুইট করতে হবে:
export const mapCopy = (object, callback) => {
return Object.keys(object).reduce(function (output, key) {
let newObject = {...object[key]};
newObject.style = {...newObject.style};
newObject.data = {...newObject.data};
output[key] = callback.call(this, newObject);
return output;
}, {});
}
এটি কম মার্জিত হয় কারণ এটি জানতে যে কোন জিনিসগুলি পাস হয়েছে। ES6- তে কোনও অবজেক্টের গভীর অনুলিপি করতে স্প্রেড সিনট্যাক্স ব্যবহার করার কোনও উপায় আছে কি?