[英]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.