问题:
关于通过find方法查找出来的值,并修改该值,原始数组是否修改在该数组元素为原始类型和对象中表现不一样。
现象:
使用find方法查找出来元素,并修改该元素:
如果这个元素是个原始类型的时候,原来的数组不会被修改;
但如果这个元素是个对象的,原来的数组会被修改?
示例代码:
// 数组中元素为原始类型const courses = [ "courses1", "courses2", "course3"];let course = courses.find(item => item === "courses1");console.log(courses); // ["courses1", "courses2", "course3"]course = "new course";console.log(courses); // ["courses1", "courses2", "course3"]// 数组中元素为对象const courses = [ { "id": 1, "name": "course1" }, { "id": 2, "name": "course2" }, { "id": 3, "name": "course3" } ];let course = courses.find(item => item.id === 1);console.log(courses); course.name = "new course"; // [{ id: 1, name: "course1" }, { id: 2, name: "course2" }, { id: 3, name: "course3" }]console.log(courses); // [{ id: 1, name: "new course" }, { id: 2, name: "course2" }, { id: 3, name: "course3" }]
侃侃尔雅
湖上湖
相关分类