Maison > interface Web > js tutoriel > pratique quotidienne de la guerre des codes

pratique quotidienne de la guerre des codes

巴扎黑
Libérer: 2017-06-27 09:12:31
original
1555 Les gens l'ont consulté

Posez une question pendant votre temps libre :

La signification de cette question est : supprimez les mêmes éléments adjacents et renvoyez un nouveau tableau.

La méthode Array.filter est la meilleure ici. Ma réponse est la suivante :

var uniqueInOrder=function(iterable){  var arr = typeof(iterable) === 'string' ? iterable.split('') : iterable;  var pre = '';  return arr.filter(function(i){if(i === pre){      return false;
    }else{
      pre = i;      return true;
    }
  })
}
Copier après la connexion

Notez ici que filter ne modifiera pas le tableau d'origine. , il renvoie simplement un nouveau tableau, et a également une fonction : supprimer les valeurs qui renvoient faux et conserver les valeurs qui renvoient vrai.

Il existe une deuxième réponse :

var uniqueInOrder=function(iterable){  var arr = typeof(iterable) === 'string' ? iterable.split('') : iterable;  var pre = '',result = [];
  arr.map(function(i){if(i !== pre){
      result.push(pre = i);
    }
  });  return result;
}
Copier après la connexion

Il s'agit d'utiliser un autre tableau vide pour reproduire les valeurs qualifiées.

Après la soumission, j'ai vu une réponse très intelligente dans la zone Solutions :

var uniqueInOrder = function (iterable){  return [].filter.call(iterable, (function (a, i) { return iterable[i - 1] !== a }));
}
Copier après la connexion

La méthode d'appel est utilisée ici pour rendre itérable intelligemment appeler array.filter, ce qui est très utile pour les itérables qui ne savent pas s'il s'agit de tableaux ou de chaînes. Il n'est pas nécessaire de se donner la peine de convertir des chaînes en tableaux pour les opérations.

Ensuite, il a profité des caractéristiques de la valeur de retour du filtre pour comparer tour à tour chaque élément avec l'élément précédent. S'ils ne sont pas égaux, il renvoie vrai et conserve l'élément actuel.

Cette question est relativement simple.

Autre question simple :

C'est très simple, je posterai donc la réponse directement :

function average(scores) {  var result = 0;
  scores.map(i=>result+=i);  return Math.round(result/scores.length);
}
Copier après la connexion

La meilleure façon de montrer la zone de conclusion par exemple :

function average(scores) {  return Math.round(scores.reduce((x, y) => x+y, 0) / scores.length)
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal