我有一个包含学生档案的二维数组。其中第1列包含名字,第2列包含中间名,第3列包含姓名等等。
我希望做的是加入所有三列的文本,转换为大写,然后返回到第1列,即#34; FIRSTMIDDLELAST"在单元格A1中。
我的代码片段下面似乎很直接,但我只是非常新的JS,执行后我收到错误..
无法读取属性" 0"来自undefined。
@ line
StudentList [I] [0] .concat(FistName,MidlName,姓氏);
for (var i=0; i<StudentList.length; i++){
var FistName = StudentList[i][0].valueOf().toUpperCase();
var MidlName = StudentList[i][0].valueOf().toUpperCase();
var LastName = StudentList[i][0].valueOf().toUpperCase();
StudentList[i][0].concat(FistName,MidlName,LastName);
}
非常感谢一些帮助。 非常感谢你。
更新:
这是Google电子表格的一个小样本,我的数组来自......
First Middle Last Age Grade English Maths
John Peter Smith 17 12 A A
Kevin Paul James 16 11 B C
Kim Caroline Anderson 15 10 B A
.... so on
答案 0 :(得分:1)
代码看起来很好,也许你的数组值错了?
var StudentList = [];
StudentList.push(['First', 'Middle', 'Last']);
document.write('original: ' + StudentList.toString() + '<br/>');
for (var i=0; i<StudentList.length; i++){
var FistName = StudentList[i][0].valueOf().toUpperCase();
var MidlName = StudentList[i][1].valueOf().toUpperCase();
var LastName = StudentList[i][2].valueOf().toUpperCase();
//StudentList[i][0].concat(FistName,MidlName,LastName);
StudentList[i][0] = FistName.concat(MidlName,LastName); //i think you mean this
};
document.write('modified: ' + StudentList.toString());
答案 1 :(得分:0)
假设你的结构是这样的(如你所描述的):
var StudentList = [
['fname1','mname1','lname1'],
['fname2','mname2','lname2'],
['fname3','mname3','lname3']
];
您的代码可能是这样的:
for (var i = 0; i < StudentList.length; i++) {
var FistName = StudentList[i][0].toUpperCase();
var MidlName = StudentList[i][1].toUpperCase();
var LastName = StudentList[i][2].toUpperCase();
StudentList[i][0] = FistName + MidlName + LastName;
}
/*
[
[
"FNAME1MNAME1LNAME1",
"mname1",
"lname1"
],
[
"FNAME2MNAME2LNAME2",
"mname2",
"lname2"
],
[
"FNAME3MNAME3LNAME3",
"mname3",
"lname3"
]
]
*/
有些观点:
.valueOf()
来获取价值; concat
不修改实际值,但会创建一个新的String。因此,您必须将结果分配给StudentList[i][0]
; +
运算符