问题
它显示在导出的 Excel 文件中undefine
。但它没有空数组索引。
代码
const joinDate = new Date(obj.date);
let snap = [
obj.name,
obj.surename,
obj.email,
obj.nip,
obj.phone,
obj.adress + " " + obj.home + " " + (obj.local=="brak" ? "" : obj.local),
obj.city,
obj.zip,
obj.spentPoint,
'',
''
];
orders.push(new Promise((resolve) => {
let userNip = i;
let ordersRef = firebase.database().ref('/orders/' + userNip);
ordersRef.once("value", (snapshot) => {
let ord = snapshot.val();
let i = 0;
for(let u in ord) {
let o = ord[u];
let newDate = new Date(o.date);
let formatttedDate = String(newDate.getDate()) + "/" + String(newDate.getMonth()+1) + "/" + String(newDate.getFullYear());
snap[10+i] = formatttedDate;
for(let x in o.items) {
snap[9+i] += String(o.items[x].title) + "[ Punktów: " + o.items[x].summary + " ]";
}
i = i + 2;
}
resolve();
})
}));
data.push(snap);
在 Excel 中看起来像:
name surename ..... 1st product name, 1st product date, undefined2nd product name, 2nd product date.
我不知道它从哪里变得未定义。
数组中有不少数据可以显示undefine。
我在问题上画了红线。并且仍在进行 3、4、5 项等...
有什么问题吗?
最佳答案
snap[9+i]
给你undefined
。 9有什么用? 10?
如果您要定位 snap
中的特定项目,请始终通过静态索引(如 snap[1]
或 snap[9]<)访问它
或 snap[10]
。
它会被破坏,因为您要添加 9 + 1 并在没有 11 个项目的数组中查找第 11 个以上的项目。
编辑:
如果您需要维护格式,这不是显示数据的好方法,但可能需要某些外部进程,请尝试以下操作:
const joinDate = new Date(obj.date);
let snap = [
obj.name,
obj.surename,
obj.email,
obj.nip,
obj.phone,
obj.adress + " " + obj.home + " " + (obj.local=="brak" ? "" : obj.local),
obj.city,
obj.zip,
obj.spentPoint,
];
orders.push(new Promise((resolve) => {
let userNip = i;
let ordersRef = firebase.database().ref('/orders/' + userNip);
ordersRef.once("value", snapshot=>{
let ord = snapshot.val();
for(let u in ord){
let o = ord[u];
let newDate = new Date(o.date);
let formatttedDate = String(newDate.getDate()) + "/" + String(newDate.getMonth()+1) + "/" + String(newDate.getFullYear());
snap.push(formatttedDate);
for(let x in o.items){
snap.push(String(o.items[x].title) + "[ Punktów: " + o.items[x].summary + " ]");
}
}
resolve();
})
}))
data.push(snap);
关于javascript - Excel标签中显示未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46712034/