如何使用循环将值添加到数组。我已经通过硬连接值将值添加到了数组中,但是我需要将大量数据添加到数组中,因此通过硬编码很难做到这一点。这是我的JS代码的一部分。
public class ABC
{
@Column(name = "op_dt")
@CreationTimestamp
@UpdateTimestamp
@Temporal(TemporalType.TIMESTAMP)
private Date opDt;
}
从今年到1900年,我需要向function BModel(checkInOrEdit) {
"use strict";
this.Number = ko.observable("");
this.Years = ko.observableArray(['', '2019', '2018', '2017', '2016', '2015', '2014', '2013', '2012', '2011', '2010', '2009', '2008', '2007', '2006', '2005', '2004', '2003', '2002', '2001', '2000']);
}
BModel.prototype = {
addTo: function (isSupervised) {
"use strict";
this.fname($.trim(this.fname()));
this.lname($.trim(this.lname()));
},
AcDone: function (result, stat) {
"use strict";
var validationResults = JSON.parse(result.d);
var msgTitle = '';
}
}
$(document).ready(function () {
});
添加值。我该怎么做。目前,我很忙。
Years
答案 0 :(得分:3)
我建议创建一个帮助程序,该帮助程序首先在常规数组中返回一定范围的数字。然后,您可以使用助手来初始化您的可观察数组。
在foreach
中插入可观察数组可能会导致重绘DOM的风险很多次!
下面是一个range
助手(可以重构为更简洁)和一个可观察数组的示例:
function range(from, to) {
const dir = to > from ? 1 : -1
return Array.from(
Array(Math.abs(to - from) + 1),
(_, i) => from + dir * i
)
};
const years = ko.observableArray(
[""].concat(range(new Date().getFullYear(), 1900))
);
ko.applyBindings({ years });
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<ul data-bind="foreach: years">
<li data-bind="text: $data"></li>
</ul>
答案 1 :(得分:1)
您可以这样做:
function BModel(checkInOrEdit) {
"use strict";
this.Number = ko.observable("");
this.Years = ko.observableArray();
let lyears = [];
for (let i = 1900; i <= new Date().getFullYear(); i++) {
lyears.push(i);
}
this.Years(lyears); // see comments
}
这不是最优雅的方法,但是如果您想使用循环,这就是您要怎么做。