আমার কাছে সম্ভবত হাজার হাজার অবজেক্টের একটি মডেল রয়েছে। আমি ভাবছিলাম যে এগুলি সংরক্ষণ করার এবং কোনও একক বস্তুর আইডি হয়ে গেলে এটি পুনরুদ্ধার করার সবচেয়ে কার্যকর উপায় কী হবে? আইডি লম্বা সংখ্যা।
সুতরাং এই 2 টি বিকল্প সম্পর্কে আমি ভাবছিলাম। বিকল্প একটিতে এটি একটি ইনক্রিমেন্টিং সূচক সহ একটি সাধারণ অ্যারে। বিকল্প 2 এ এটি একটি সহযোগী অ্যারে এবং সম্ভবত কোনও বস্তু, যদি এটি কোনও পার্থক্য করে। আমার প্রশ্নটি কোনটি আরও দক্ষ, যখন আমার বেশিরভাগ ক্ষেত্রে একটি একক বস্তু পুনরুদ্ধার করা প্রয়োজন তবে মাঝে মধ্যে সেগুলি লুপ করেও বাছাই করে।
অ অ্যাসোসিয়েটিভ অ্যারে সহ একটি বিকল্প:
var a = [{id: 29938, name: 'name1'},
{id: 32994, name: 'name1'}];
function getObject(id) {
for (var i=0; i < a.length; i++) {
if (a[i].id == id)
return a[i];
}
}
সহযোগী অ্যারে সহ দুটি বিকল্প:
var a = []; // maybe {} makes a difference?
a[29938] = {id: 29938, name: 'name1'};
a[32994] = {id: 32994, name: 'name1'};
function getObject(id) {
return a[id];
}
হালনাগাদ:
ঠিক আছে, আমি পেয়েছি যে দ্বিতীয় বিকল্পে একটি অ্যারের ব্যবহার করা প্রশ্নটির বাইরে। সুতরাং ডিক্লেয়ারেশন লাইন দ্বিতীয় বিকল্পটি সত্যই হওয়া উচিত: var a = {};
এবং একমাত্র প্রশ্ন: প্রদত্ত আইডির সাহায্যে কোনও বস্তু পুনরুদ্ধারে আরও ভাল কী সম্পাদন করা হচ্ছে: একটি অ্যারে বা কোনও আইডি যেখানে মূল কী।
এবং এছাড়াও, উত্তরটি যদি আমার তালিকায় অনেক বার বাছাই করতে হয় তবে কি পরিবর্তন হবে?