由于我必须从数组中删除一些元素,因此我遵循了在 stackoverflow 中找到的几段代码并想出了这个:
Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
然而,由于某些原因,每当有东西与数组有关时,这段代码就会到处打印。
例子:
这段代码:
Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
Scadenza.prototype.init = function() {
this.promemoria = (this.promemoria == "")?("NO"):(this.promemoria);
var gruppo = this.group; // convert array to string.
this.group = "";
for (var i in gruppo) {
if (i != (gruppo.length - 1)) {
this.group += gruppo[i] + ", ";
}
else {
this.group += gruppo[i];
}
}
alert(this.group);
};
这段代码应该将数组 this.group(临时存储在变量“gruppo”中)转换为字符串(我认为这很明显)。
当然,如果不是它的警报是:
[需要数据]function (from, to) { var rest = this.slice((to || from) + 1 || this.length); this.length = 从 < 0 开始?this.length + from : from; 返回 this.push.apply(this, rest); }
这段代码也通过 AJAX 请求发送到数据库,查询的结果在所需的列中是这样的:
function (from, to) { var rest = this.slice((to || from) + 1 || this.length); this.length = 从 < 0 开始?this.length + from : from; 返回 this.push.apply(this, rest); },
我很惊讶这种情况正在发生,但我完全不知道如何解决它。
加载页面或单击引发此事件的按钮时,未警告任何错误。
任何的想法?
ps:不确定是否有帮助,但我正在使用 jQuery。
@评论:
正常的 for 循环实际上并不能解决这个问题:
Scadenza.prototype.init = function() {
this.promemoria = (this.promemoria == "")?("NO"):(this.promemoria);
var gruppo = this.group; // convert array to string.
this.group = "";
for (var i = 0; i < gruppo.length; i++) {
if (i != (gruppo.length - 1)) {
this.group += gruppo[i] + ", ";
}
else {
this.group += gruppo[i];
}
}
alert(this.group);
};
警报还是一样的。