আমি বেশ কয়েকটি ফাংশন লিখেছি যা কার্যকরভাবে JSON.stringify () এর প্রতিলিপি তৈরি করে, বিভিন্ন মানের মানকে স্ট্রিংফাইড সংস্করণে রূপান্তর করে। আমি যখন আমার কোডটি জেএসবিনে পোর্ট করি এবং কিছু নমুনা মানগুলিতে চালিত করি, এটি ঠিক ঠিক কাজ করে। তবে আমি এটি পরীক্ষা করার জন্য ডিজাইন করা একটি বিশেষ রানারটিতে এই ত্রুটিটি পাচ্ছি।
আমার কোড:
// five lines of comments
var stringify = function(obj) {
if (typeof obj === 'function') { return undefined;} // return undefined for function
if (typeof obj === 'undefined') { return undefined;} // return undefined for undefined
if (typeof obj === 'number') { return obj;} // number unchanged
if (obj === 'null') { return null;} // null unchanged
if (typeof obj === 'boolean') { return obj;} // boolean unchanged
if (typeof obj === 'string') { return '\"' + obj + '\"';} // string gets escaped end-quotes
if (Array.isArray(obj)) {
return obj.map(function (e) { // uses map() to create new array with stringified elements
return stringify(e);
});
} else {
var keys = Object.keys(obj); // convert object's keys into an array
var container = keys.map(function (k) { // uses map() to create an array of key:(stringified)value pairs
return k + ': ' + stringify(obj[k]);
});
return '{' + container.join(', ') + '}'; // returns assembled object with curly brackets
}
};
var stringifyJSON = function(obj) {
if (typeof stringify(obj) != 'undefined') {
return "" + stringify(obj) + "";
}
};
পরীক্ষকটির কাছ থেকে আমি যে ত্রুটি বার্তাটি পেয়েছি তা হ'ল:
TypeError: Cannot convert undefined or null to object
at Function.keys (native)
at stringify (stringifyJSON.js:18:22)
at stringifyJSON (stringifyJSON.js:27:13)
at stringifyJSONSpec.js:7:20
at Array.forEach (native)
at Context.<anonymous> (stringifyJSONSpec.js:5:26)
at Test.Runnable.run (mocha.js:4039:32)
at Runner.runTest (mocha.js:4404:10)
at mocha.js:4450:12
at next (mocha.js:4330:14)
এটি ব্যর্থ বলে মনে হচ্ছে: উদাহরণস্বরূপ স্ট্রিংফাইজেএসএন (নাল)