gpt4 book ai didi

mysql - jade 嵌套循环 mysql 数组

转载 作者:行者123 更新时间:2023-11-30 23:13:45 26 4
gpt4 key购买 nike

jade 和循环有问题从 mysql 查询中抛出一个数组。当我尝试记录 console.log 一行时,它会转储出这个。

{ id: 512,
first: 'Mark',
last: 'Neal',
client: 'City of South Bend',
employer: null,
access: null }

这很好。

现在我正在尝试设置它,以便 jade 自动填写列名和列。不管怎样,这是我的 Jade 代码。

block content
.container
h1 Data Tables
.span12
table.table.table-striped.table-bordered.table-condensed
thead
each f in fields
th= f.name
tbody
each i in results
tr
each b in i
td= b

显然我不能发布图片,因为这是我的第一篇文章,所以我会尽可能地尝试复制和粘贴。

它不会在 } 处停止,而是在两个新列中继续这样。

enter image description here

function (parser, fieldPackets, typeCast, nestTables, connection) {
var self = this;
var next = function () {
return self._typeCast(fieldPacket, parser, connection.config.timezone, connection.config.supportBigNumbers, connection.config.bigNumberStrings);
};
for (var i = 0; i < fieldPackets.length; i++) {
var fieldPacket = fieldPackets[i];
var value;
if (typeof typeCast == "function") {
value = typeCast.apply(connection, [new Field({
packet: fieldPacket,
parser: parser
}), next]);
} else {
value = (typeCast) ? this._typeCast(fieldPacket, parser, connection.config.timezone, connection.config.supportBigNumbers, connection.config.bigNumberStrings) : ((fieldPacket.charsetNr === Charsets.BINARY) ? parser.parseLengthCodedBuffer() : parser.parseLengthCodedString());
} if (typeof nestTables == "string" && nestTables.length) {
this[fieldPacket.table + nestTables + fieldPacket.name] = value;
} else if (nestTables) {
this[fieldPacket.table] = this[fieldPacket.table] || {};
this[fieldPacket.table][fieldPacket.name] = value;
} else {
this[fieldPacket.name] = value;
}
}
}

function (field, parser, timeZone, supportBigNumbers, bigNumberStrings) {
var numberString;
switch (field.type) {
case Types.TIMESTAMP:
case Types.DATE:
case Types.DATETIME:
case Types.NEWDATE:
var dateString = parser.parseLengthCodedString();
var dt;
if (dateString === null) {
return null;
}
if (timeZone != 'local') {
if (field.type === Types.DATE) {
dateString += ' 00:00:00 ' + timeZone;
} else {
dateString += ' ' + timeZone;
}
}
dt = new Date(dateString);
if (isNaN(dt.getTime())) {
return dateString;
}
return dt;
case Types.TINY:
case Types.SHORT:
case Types.LONG:
case Types.INT24:
case Types.YEAR:
case Types.FLOAT:
case Types.DOUBLE:
numberString = parser.parseLengthCodedString();
return (numberString === null || (field.zeroFill && numberString[0] == "0")) ? numberString : Number(numberString);
case Types.NEWDECIMAL:
case Types.LONGLONG:
numberString = parser.parseLengthCodedString();
return (numberString === null || (field.zeroFill && numberString[0] == "0")) ? numberString : ((supportBigNumbers && (bigNumberStrings || (Number(numberString) > IEEE_754_BINARY_64_PRECISION))) ? numberString : Number(numberString));
case Types.BIT:
return parser.parseLengthCodedBuffer();
case Types.STRING:
case Types.VAR_STRING:
case Types.TINY_BLOB:
case Types.MEDIUM_BLOB:
case Types.LONG_BLOB:
case Types.BLOB:
return (field.charsetNr === Charsets.BINARY) ? parser.parseLengthCodedBuffer() : parser.parseLengthCodedString();
case Types.GEOMETRY:
return parser.parseGeometryValue();
default:
return parser.parseLengthCodedString();
}
}

最佳答案

如果我们只是查看 JADE 代码,那么这可能会有帮助。我解决了这样一个类似的程序:

- each value, i in results
tr
- var count = 0
- each b in i
- if(count < Object.keys(value).length)
td= b
- count += 1

我更改了我自己的变量的名称,以便它适合您的 JADE 文件。

希望代码示例能够很好地 self 解释,但要简短地解释它是如何工作的:

变量“value”的第一个将获得数组“results”中的每个项目,即使这是一个只有不同键值的 JSON 对象。

然后我做了一个变量来计算键的数量。如果您没有针对 Object.keys(element).length) 的检查,那么它将打印另外 2 个值,即“parse”值和“_typeCast”值。

无论如何,这个计数变量只计算使用的键的数量,稍后将其与 JSON 数组中的键总数进行比较,当所有键都被打印出来时,它就不会再打印了。

希望这对您(或其他人!)有帮助

关于mysql - jade 嵌套循环 mysql 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18791709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com