javascript - 这个 handleChange 方法在做什么?
问题描述
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 变量中?我了解 substring 和 Number 构造函数的作用,但第二个参数我找不到这个特定问题的任何答案,尽管它按预期工作。
解决方案
子字符串以一种棘手的方式工作,如果第二个参数(在您的情况下为 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
}
推荐阅读
- maven - JAR 文件已损坏
- php - MySQL JOIN 2 个表并分别获取两个表的总和
- r - 如何在三个或更多矩阵上使用 crossprod?
- php - 如何修复:PDOStatement::execute() 期望参数 1 是数组,字符串在 C:\wamp64\www\invoiceTem01-Create.php 的第 64 行
- c++ - 为什么boost::property_tree::json_parser::read_json的第一个参数流不是const?
- javascript - 如何在笔记本电脑上运行粒子设计?
- java - 如何正确地为密码做一个while循环
- reactjs - TypeError:无法获取未定义或空引用的属性“文本”
- javascript - 使用立即需要该状态进行 API 调用的 useState 挂钩时,如何等待 setState 调用完成?
- react-native - 类 FBSDKPackage 中的构造函数 FBSDKPackage 不能应用于给定类型