2016-02-15 79 views
1

我已经看了一些已经存在的堆栈溢出问题的例子,但我不断收到“未定义”,似乎是循环访问数组中的每一个字符。循环通过JS对象数组的特定属性

我不是太清楚如何阻止这种,所以我可以有它只是打印出带有“名称”属性

CSV示例一切:

[{"Extension":"071","Company Name":"test1","Name":"Iron"},{"Extension":"072","Company Name":"test2","Name":"Blue"},{"Extension":"073","Company Name":"test3","Name":"Bloggs"},{"Extension":"074","Company Name":"test4","Name":"Best"},{"Extension":"075","Company Name":"test5","Name":"Green"}] 

客户端代码:

$("#CSV-Upload").click(function() { 
$("input[type=file]").parse({ 
    config: { 
    header: true, 
    skipEmptyLines: true, 
    complete: function(results, file) { 
        console.log("This file done:", file, results); 
        var string = JSON.stringify(results['data']); 
        result.push(string); 
        console.log("CSV Array: " + string); 
        socket.emit('CSVSQL', string); 
       } 
    }, 
    complete: function() { 
     console.log("All files done!"); 
    } 
}); 
    $("#csv-file").val(''); 
}); 

服务器端代码:

function CSVSQL(csvdata) { 
    if (csvdata.length > 0) { 
     console.log('Current CSV data Information: \n'); 
     console.log(csvdata); 
    for (var j = 0; j < csvdata.length; j++){ 
    console.log(csvdata[j].Name); 
} 
    } else { 
     console.log('No data in that CSV file :-(\n'); 
    }; 
    } 

io.sockets.on('connection', function (socket) { 
    socket.on('CSVSQL', function (csvdata) { 
     CSVSQL(csvdata); 
    }); 
    }); 

任何人都可以解释我哪里出了问题,并提供一些建议?

+0

当你'的console.log(csvdata);',你会得到什么输出? –

+0

@PrashantAgrawal当我这样做时,它打印出整个数组几百次。 – Studento919

回答

1

我不是太清楚如何阻止这种,所以我可以有它只是打印出 一切财产“名称”

csvdatastring,它是不是一个对象呢。

将其转为对象做

if (csvdata.length > 0) 
{ 
    csvdata = JSON.parse(csvdata); //parse it into JSON by doing JSON.parse 
    console.log('Current CSV data Information: \n'); 
    console.log(csvdata); 
    for (var j = 0; j < csvdata.length; j++) 
    { 
     console.log(csvdata[j].Name); 
    } 
} 
+0

是的,这是问题的感谢! – Studento919

+0

不!你将一个JSON字符串解析为一个JS对象。你不会把它解析成JSON。 – Andy

+0

@Andy明白了!这就是我的意思。 – gurvinder372

相关问题