gpt4 book ai didi

javascript - 我可以减少这个方法来实例化一个对象并插入一个数组吗?

转载 作者:行者123 更新时间:2023-12-03 10:20:15 25 4
gpt4 key购买 nike

我正在将 .csv 文件读入数组中。该文件仅包含员工信息(姓氏、名字、工作等)。我最终想创建一个矩阵,其中用每个人对象填充一维数组。这是我的代码:

function setStaffData() {
/** @type {Array.<string>} */
var lines = [],
person = [];
$.ajax({
url: 'data/staff2.csv',
contentType: "text/csv",
async: false,
success: function(text) {
lines = text.split(/\n/);
}
});
for (var i = 0; i < lines.length; i++) {
lines[i] = lines[i].replace(/(\r\n|\n|\r)/gm,"");
person[i] = lines[i].split(",");
staff[i] = new PersonClass(person[i][0], person[i][1], person[i][2], person[i][3], person[i][4], person[i][5], person[i][6], person[i][7]);
}
}

如何在不使用 person 数组的情况下缩短流程?

最佳答案

由于您似乎没有在填充的循环迭代之外使用 person 中每个条目的内容,因此您可以只使用单个变量:

function setStaffData() {
/** @type {Array.<string>} */
var lines = [],
person;
$.ajax({
url: 'data/staff2.csv',
contentType: "text/csv",
async: false,
success: function(text) {
lines = text.split(/\n/);
}
});
for (var i = 0; i < lines.length; i++) {
lines[i] = lines[i].replace(/(\r\n|\n|\r)/gm,"");
person = lines[i].split(",");
staff[i] = new PersonClass(person[0], person[1], person[2], person[3], person[4], person[5], person[6], person[7]);
}
}

编辑:

还可以进一步缩短它以消除 lines 数组:

function setStaffData() {
/** @type {Array.<string>} */
$.ajax({
url: 'data/staff2.csv',
contentType: "text/csv",
// note: removed "async: false"
success: function(text) {
var lineRegex = new RegExp('.*\n', 'g');
var match, line, person;
while (match = lineRegex.exec(text)) {
line = match[0].replace(/(\r\n|\n|\r)/gm,"");
person = line.split(",");
staff.push(new PersonClass(person[0], person[1], person[2], person[3], person[4], person[5], person[6], person[7]));
}
}
});
}

关于javascript - 我可以减少这个方法来实例化一个对象并插入一个数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29676875/

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