2
votes

Array.find renvoie-t-il une valeur ou une référence? Je veux dire passer par valeur ou passer par référence?

Qu'est-ce que la méthode Array.find renvoie la valeur une copie spécifique de la valeur trouvée ou de la référence du tableau. Je veux dire est-ce que c'est passer par valeur ou passer par type de référence?


5 commentaires

Vous voulez dire array.find ?


oui et j'ai corrigé par courrier.


Qu'entendez-vous précisément par «copie»? Et pourquoi vous demandez-vous cela spécifiquement pour .find() ? Votre question semble être un double de JavaScript est-il un langage pass-by-reference ou pass-by-value? , mais je ne suis pas entièrement convaincu.


nouvelle instance qui n'est pas liée au tableau auquel elle appartient. Passer par valeur principalement


@MDJahidHasan JavaScript est pass-by-value, vous obtiendrez donc toujours une valeur. Mais cette valeur pourrait être une référence à un objet. Mais cela n'a aucun rapport avec la fonction Array.prototype.find() . C'est ainsi que fonctionne JavaScript. Voir le lien que j'ai mis dans mon commentaire précédent.


4 Réponses :


4
votes

De MDN (en soulignant le leur):

La méthode find () renvoie la valeur du premier élément du tableau fourni qui satisfait la fonction de test fournie.

Qu'il retourne une copie ou une référence à la valeur suivra le comportement normal de JavaScript, c'est-à-dire que ce sera une copie s'il s'agit d'une primitive, ou une référence s'il s'agit d'un type complexe.

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 commentaires

0
votes

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

La méthode find () renvoie la valeur du premier élément du tableau fourni qui satisfait la fonction de test fournie.

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 commentaires

0
votes

Valeur renvoyée

La méthode find () renvoie la valeur du premier élément d'un tableau qui passe un test (fourni en tant que fonction).

La méthode find () exécute la fonction une fois pour chaque élément présent dans le tableau:

S'il trouve un élément de tableau où la fonction renvoie une valeur vraie, find () renvoie la valeur de cet élément de tableau (et ne vérifie pas les valeurs restantes) Sinon, il retourne undefined

Cliquez ici


0 commentaires

0
votes

C'est une question délicate.

Techniquement parlant, find renvoie toujours une valeur, mais cette valeur peut être une référence si l'élément que vous recherchez est un objet. Ce sera quand même une valeur.

C'est similaire à ce qui se passe ici:

let a = { some: "object" };

let b = a;

Vous copiez la valeur de la variable a dans b . Il se trouve que la valeur est une référence à l'objet { some: "object" } .


0 commentaires