我正在研究以下fiddle 当在此代码中粘贴空列时,我得到一个未定义的值,我正在尝试将其转换为''(value ='') 举个简单的例子,列之间用制表符分隔 此附件图片中的dateaccount借方贷方:
我试图进行测试
if (typeof myVar !== 'undefined') ...
没有运气 如何才能做到这一点? JS如下所示:
$(document).on('paste', 'textarea#excelPasteBox', function(e) {
e.preventDefault();
var cb;
var clipText = '';
if (window.clipboardData && window.clipboardData.getData) {
cb = window.clipboardData;
clipText = cb.getData('Text');
} else if (e.clipboardData && e.clipboardData.getData) {
cb = e.clipboardData;
clipText = cb.getData('text/plain');
} else {
cb = e.originalEvent.clipboardData;
clipText = cb.getData('text/plain');
}
var clipRows = clipText.split('\n');
for (i = 0; i < clipRows.length; i++) {
clipRows[i] = clipRows[i].split('\t');
}
var jsonObj = [];
for (i = 0; i < clipRows.length - 1; i++) {
var item = {};
for (j = 0; j < clipRows[i].length; j++) {
if (clipRows[i][j] != '\r') {
if (clipRows[i][j].length !== 0) {
item[j] = clipRows[i][j];
}
}
}
jsonObj.push(item);
}
$('textarea#jsonDataDump').val('');
var tablePlaceHolder = document.getElementById('output');
tablePlaceHolder.innerHTML = '';
var table = document.createElement('table');
table.id = 'excelDataTable';
table.className = 'table';
var header = table.createTHead();
var row = header.insertRow(0);
var keys = [];
for (var i = 0; i < jsonObj.length; i++) {
var obj = jsonObj[i];
for (var j in obj) {
if ($.inArray(j, keys) == -1) {
keys.push(j);
}
}
}
keys.forEach(function(value, index) {
var headerCell = document.createElement('th');
headerCell.innerHTML = '<div>' + value + '<\/div>';
答案 0 :(得分:1)
如下所示分配所有if逻辑。
var jsonObj = [];
for (i = 0; i < clipRows.length - 1; i++) {
var item = {};
for (j = 0; j < clipRows[i].length; j++) {
item[j] = clipRows[i][j]
}
jsonObj.push(item);
}
答案 1 :(得分:1)
只要变量为||
,就可以尝试使用Logical OR运算符undefined
添加值
item[j] = clipRows[i][j] || '';
let tmp;
console.log(tmp);
console.log(tmp || "");
console.log(tmp || "--na--");
答案 2 :(得分:0)
您可以轻松地用空字符串或任何您想要的值替换未定义的值。基本上,您可以添加以下行
if(item [j] === undefined)item [j] =“ no data”; //没有数据或您想要什么
var jsonObj = [];
for (i = 0; i < clipRows.length - 1; i++) {
var item = {};
for (j = 0; j < clipRows[i].length; j++) {
if (clipRows[i][j] != '\r') {
if (clipRows[i][j].length !== 0) {
item[j] = clipRows[i][j];
}
}
if( item[j]===undefined) item[j]="no data";
}
jsonObj.push(item);
}
希望它对您有用!