[英]Convert Object (Array?) To String
我已经获取了一些代码,但是开发人员无法联系。 它包含一个javascript对象(数组?),我试图将其内容转换为字符串。 我相信其中可能包含一些我需要的数据。
该对象称为SubmitDataDisplay。 目前,它的内容输出到页面的底部(我相信其他对象是包含数据的对象),我可以复制和粘贴它,但是我的目的是通过编程将其保存到文本文件中。 我可能马上就开球了,这是不可能的,但我想试试看。
我尝试使用JSON.stringify(obj)来查看内容,但这不能正常工作,因为它无法获取所有值,因为我无法在循环期间将相关行项目添加到命令中。
这是来自html文件:
updateRemark(sheet);
$("#J_timingSubmit").click(function(ev){
var sheetStates = sheet.getSheetStates();
var rowsCount = dimensions[0];
var $submitDataDisplay = $("#J_dataDisplay") ;
$submitDataDisplay.html("<b>Raw Data Submitted:</b><br/>[<br/>");
for(var row= 0, rowStates=[]; row<rowsCount; ++row){
rowStates = sheetStates[row];
$submitDataDisplay.append(' [ '+rowStates+' ]'+(row==rowsCount-1?'':',')+'<br/>');
}
$submitDataDisplay.append(']');
这来自js文件,我认为这是相关的部分:
initSheet();
eventBinding();
var publicAPI = {
/*
*
* @return : [[1,0,0,...,0,1],[1,0,0,...,0,1],...,[1,0,0,...,0,1]]
* */
getSheetStates : function(){
return sheetModel.getSheetStates();
},
setRemark : function(row,html){
if($.trim(html)!==''){
$(thisSheet.find(".TimeSheet-row")[row]).find(".TimeSheet-remark").prop("title",html).html(html);
}
},
getDefaultRemark : function(){
return sheetOption.remarks.default;
},
};
return publicAPI;
这是发布到网页底部的数据:
Raw Data Submitted:
[
[ 1,1,0,1,0,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ],
[ 1,1,1,1,1,1,1 ]
]
我已添加到代码的最后一行:
$submitDataDisplay.append(']');
console.log(Object.values($submitDataDisplay));
这给了我一些很好的数据。 它包括一个InnerText条目,其中包含我需要的所有数据。
$submitDataDislay
既不是对象,也不是数组,它是一个DOM节点,表示您网页上的HTML元素,由jQuery提取。
您发布的代码从名为sheetStates
的数组读取数据,将其内容写入DOM节点,以便在浏览器中显示。
如果要将数据存储在字符串中,则可以将其放入字符串变量中,如下所示:
updateRemark(sheet);
$("#J_timingSubmit").click(function(ev){
var sheetStates = sheet.getSheetStates();
var rowsCount = dimensions[0];
var data = "Raw Data Submitted:\n\n[\n";
for(var row= 0, rowStates=[]; row<rowsCount; ++row){
rowStates = sheetStates[row];
data += ' [ '+rowStates+' ]'+(row==rowsCount-1?'':',')+'\n';
}
data += ']';
console.log(data);
}
这会将数据打印到控制台。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.