Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript For循环不使用js映射函数_Javascript_Jquery_Arrays_Json - Fatal编程技术网

Javascript For循环不使用js映射函数

Javascript For循环不使用js映射函数,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我试图用html打印数组,但我的for循环不起作用。我试图获取dataArrayNew的长度,但它不会返回添加for循环的位置。如果iconsole.log(dataArrayNew.title),我可以看到正确的结果。我还附加了浏览器控制台的打印屏幕。 var-dataArrayNew=[]; 函数fetch_section_data_1(){ var keys=Object.keys(localStorage).filter(函数(键){ 返回/^section\d+$/.test(键);

我试图用html打印数组,但我的for循环不起作用。我试图获取
dataArrayNew
的长度,但它不会返回添加for循环的位置。如果i
console.log(dataArrayNew.title),我可以看到正确的结果。我还附加了浏览器控制台的打印屏幕。

var-dataArrayNew=[];
函数fetch_section_data_1(){
var keys=Object.keys(localStorage).filter(函数(键){
返回/^section\d+$/.test(键);
});
var dataArray=keys.map(函数(键){
dataArrayNew=JSON.parse(localStorage.getItem(key));
console.log(dataArrayNew.title);
//lengtharray=dataArrayNew.length;
//控制台日志(纵向);
//返回JSON.parse(localStorage.getItem(key));
});
var$table=$(“”);

对于(i=0;i无法看到
length
属性的原因是,您正在将
dataArrayNew
从数组重新分配到结果
JSON。parse
是一个对象,而对象没有
length
属性。与其重新分配
dataArrayNew
的值,不如推送该值将
JSON.parse(localStorage.getItem(key))
添加到它,如下所示:

dataArrayNew.push(JSON.parse(localStorage.getItem(key)));
因此,您的代码应该如下所示:

var-dataArrayNew=[];
函数fetch_section_data_1(){
var keys=Object.keys(localStorage).filter(函数(键){
返回/^section\d+$/.test(键);
});
var dataArray=keys.map(函数(键){
var currIn=JSON.parse(localStorage.getItem(key));
console.log(currIn);
//将数据推送到dataArrayNew
dataArrayNew.push(currIn);
//lengtharray=dataArrayNew.length;
//控制台日志(纵向);
//返回JSON.parse(localStorage.getItem(key));
});
var$table=$(“”);
//你现在应该可以在这里得到长度了
对于(var i=0;i}
您的
.map()
回调没有
return
语句。它应该在
.map()之后添加
console.log(dataArray)
你会明白原因的。我取消了return语句的注释并添加了你建议的内容,我可以在我的控制台中看到-
https://www.dropbox.com/s/nexj0maebb3xm35/Screenshot%202017-05-17%2008.36.13.png?dl=0
但仍适用于循环不工作OK,如果我单击标题,如何从数组中获取其相应id,请ggestYeah我做了类似的事情,我只是在映射函数之后使用了dataArray本身,我如何才能控制台.log我单击的标题的id在这种情况下,它将是
console.log(currIn.title)
如何添加单击标题以获得相应的id你可能需要一个事件处理程序。单击MDN后查找:
dataArrayNew.push(JSON.parse(localStorage.getItem(key)));