Chromearray.map
は正常に動作しますが、jQuery.map
は何らかの形で循環参照を生成します。を使用した循環参照の証拠は見当たりませんconsole.log
が、JSON.stringifyUncaught TypeError: Converting circular structure to JSON
は 2 番目のブロックをスローします。
JSFiddle で実行します: http://jsfiddle.net/langdonx/vQBak/
またはコードを確認してください:
var callback = function(index, element) {
return {
"index": index
};
};
var array1 = ["1", "2"];
var mappedArray1 = array1.map(callback);
console.log(mappedArray1);
var json1 = JSON.stringify(mappedArray1);
console.log(json1);
var jqueryArray2 = $('body > div');
var mappedArray2 = jqueryArray2.map(callback);
console.log(mappedArray2);
var json2 = JSON.stringify(mappedArray2); // Chokes with "Uncaught TypeError: Converting circular structure to JSON"
console.log(json2);
はい、私は同じコールバックを使用しています。はい、ECMAScriptmap
は引数を異なる順序で渡しますが、この例ではすべて単純な型 (文字列、数値) であるため、問題になりません。