handleChange(e) {
const index = Number(e.target.id.substring(e.target.id.length - 1, 19));
const copyFormArray = JSON.parse(JSON.stringify(this.state.educationData));
copyFormArray[index][e.target.name] = e.target.value;
this.setState({
educationData: copyFormArray,
});
};
这个handleChange方法有什么作用,特别是在index变量中?我了解子字符串和Number构造函数的作用,但是第二个参数尽管可以按预期工作,但找不到该特定问题的任何答案。
答案 0 :(得分:0)
子字符串以一种棘手的方式工作,如果第二个参数(在您的情况下为19)小于第一个参数-则它们将被“交换”,否则,它将仅在索引(参数1和参数2)之间使用文本。
例如说我有一个字符串:
var x = "aaaaa-5";
如果我会写:
x.substring(x.length-1)
它将给我“ 5”。
然后如果我要写:
x.substring(3,6)
它将给我“ aa-”
但是如果我会写:
x.substring(6,3)
它将与上一个呼叫完全相同-“ aa-”
所以子字符串的内部逻辑是这样的:
function substring(start,end) {
if(start > end) {
var buf = end;
end = start;
start = buf;
}
//... other logic
}