提问人:MD Jahid Hasan 提问时间:6/21/2020 最后编辑:MD Jahid Hasan 更新时间:11/25/2021 访问量:8589
Array.find 方法是否返回给定数组中匹配元素的副本或引用?[已结束]
Does Array.find method return a copy or a reference of the matched element form given array? [closed]
问:
Array.find 方法返回值是什么,找到的值或数组中的引用的一些特定副本。我的意思是它从给定数组中返回匹配元素的值或引用。
答:
28赞
Mitya
6/21/2020
#1
来自 MDN(强调他们的):
find() 方法返回 提供的数组,满足提供的测试功能。
无论它是否返回值的副本或对值的引用都将遵循正常的 JavaScript 行为,即如果它是基元,它将是一个副本,如果它是一个复杂类型,它将是一个引用。
let foo = ['a', {bar: 1}];
let a = foo.find(val => val === 'a');
a = 'b';
console.log(foo[0]); //still "a"
let obj = foo.find(val => val.bar);
obj.bar = 2;
console.log(foo[1].bar); //2 - reference
0赞
ebyte
6/21/2020
#2
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
find() 方法返回提供的数组中第一个元素的值,该元素满足提供的测试函数。
const obj = {}
console.log(obj.find)
const arr = ['a', 'b', 'c']
console.log(arr.find(e => e === 'a'))
console.log(arr.find(e => e ==='c'))
0赞
Merrin K
6/21/2020
#3
返回值
find() 方法返回数组中通过测试的第一个元素的值(作为函数提供)。
find() 方法对数组中存在的每个元素执行一次函数:
如果它找到一个数组元素,其中函数返回一个 true 值,find() 返回该数组元素的值(并且不检查其余值) 否则,它将返回 undefined
5赞
ibrahim mahrir
6/21/2020
#4
这是一个棘手的问题。
从技术上讲,始终返回一个值,但如果您要查找的项是对象,则该值可以作为引用。尽管如此,它仍然是一个价值。find
这与这里发生的事情类似:
let a = { some: "object" };
let b = a;
您正在将变量的值复制到 中。碰巧该值是对对象的引用。a
b
{ some: "object" }
上一个:2D 指针数组的引用或值传递
评论
array.find
.find()
Array.prototype.find()