我正在尝试在html中打印数组,但我的for循环不起作用。我试图获得dataArrayNew
的长度,但它不会返回我的for循环添加的位置。如果我console.log(dataArrayNew.title);
,我能够看到正确的结果。我还附上浏览器控制台的打印屏幕。
var dataArrayNew = [];
function fetch_section_data_1(){
var keys = Object.keys(localStorage).filter(function(key) {
return /^section\d+$/.test(key);
});
var dataArray = keys.map(function(key) {
dataArrayNew = JSON.parse(localStorage.getItem(key));
console.log(dataArrayNew.title);
//lengtharray = dataArrayNew.length;
//console.log(lengtharray);
//return JSON.parse(localStorage.getItem(key));
});
var $table = $( "<table></table>" );
for(i=0;i<dataArrayNew.length;i++){
var array_no = dataArrayNew[i];
var $line = $( "<tr></tr>" );
$line.append( $( "<td></td>" ).html( array_no.title ) );
$table.append( $line );
console.log(dataArrayNew.title);
}
$table.appendTo(document.body);
}
答案 0 :(得分:1)
您无法看到length
属性的原因是您将dataArrayNew
从数组重新分配给作为对象的结果JSON.parse
,并且对象没有属性{ {1}}。不要重新分配length
的值,为什么不将dataArrayNew
的值推送到它,如下所示:
JSON.parse(localStorage.getItem(key))
所以你的代码应该是这样的:
dataArrayNew.push(JSON.parse(localStorage.getItem(key)));