Maison > Article > interface Web > Une brève discussion sur l'utilisation de Set et Map dans Nodejs
Cet article vous guidera à travers l'utilisation de Set et Map dans Node. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Recommandations associées : "Tutoriel nodejs"
Fonction Semblable aux tableaux, mais différent des tableaux : il ne peut pas stocker d'éléments répétés
Scénarios d'application : Déduplication de tableau
eg01 : Utilisation de base
let set1 = new Set([10, 20, 30, 40, 10, 20, 30, 50]); console.log(set1); // Set(5) { 10, 20, 30, 40, 50 }
let arr = [10, 20, 30, 40, 10, 20, 30, 50]; let set = new Set(arr); console.log(set); // Set(5) { 10, 20, 30, 40, 50 } let arrNew = [...set]; console.log(arrNew); // [ 10, 20, 30, 40, 50 ]
let arr = [10, 20, 30, 40, 10, 20, 30, 50]; let arrNew = [...new Set(arr)]; console.log(arrNew); // [ 10, 20, 30, 40, 50 ]
La chaîne n'a pas de format et les variables ne peuvent pas y être écrites
Chaîne de modèle
let author = "波波"; let str = ` 静夜思 ${author} 床前明月光, 低下鞋两双, 举头望明月, 低头思阿香. `; console.log(str);
let name = "千里"; let age = 38; let score = 100; console.log(`我的名字是${name},我的年龄是${age},我的成绩是${score}`);
function test() { return "哈哈哈"; } console.log(`我是神雕大侠,我在笑:${test()}`); // 我是神雕大侠,我在笑
1. forEach()
Parcourir le tableau et transmettre chaque élément parcouru à la fonction de rappel.
Aucune valeur de retour
let arr = [10, 20, 30, 40]; arr.forEach(function (item, index) { // item 就是遍历出来的每一项 // index就是遍历出来的每一项对应的索引 console.log(item, index); });
eg01 :
let arr = [10, 20, 30, 50, 33, 22]; let max = -Infinity; arr.forEach((item, index) => { if (item > max) { max = item; } }); console.log(max); // 50
2. map()
En parcourant le tableau, il y a une valeur de retour
let arr = [10, 20, 30, 40]; let arrNew = arr.map(function (item, index) { // item 就是遍历出来的每一项 // index就是遍历出来的每一项对应的索引 // console.log(item, index); return item * item; }); console.log(arrNew); // [ 100, 400, 900, 1600 ]
3. filter(); Filter
La méthode filter() renverra un nouveau tableau. Les éléments du nouveau tableau sont les éléments qui remplissent les conditions après avoir réussi la vérification
eg01:
let arr = [10, 20, 11, 21, 30, 31, 34, 56, 67]; let arrNew = arr.filter(function (item, index) { // item 就是遍历出来的每一项 // index就是遍历出来的每一项对应的索引 // console.log(item, index); return item % 2 == 0; // 如果条件成立,会返回当前项,如果条件不成立,不会返回当前项 }); console.log(arrNew); // [ 10, 20, 30, 34, 56 ]
eg02:
let arr = [ { name: "波波", age: 38 }, { name: "千里", age: 18 }, { name: "哲锴", age: 28 }, { age: 45 }, ]; let arrNew = arr.filter((item, index) => { return item.name; }); console.log(arrNew);
let obj = { name: "波波", age: 38, gender: "男", score: 100, }; // 1. // let { name, age, gender, score } = obj; // console.log(name, age, gender, score); // 波波 38 男 100 // 2. obj2就相当于是obj对象里面除了name属性之前的属性们组成的一个对象 let { name, age, ...obj2 } = obj; console.log(obj2); // { gender: '男', score: 100 }
1,
// 数组降维: 把二维数组降低地道一维数组 var arr = [ [10, 20], [30, 40, 50], [60, 70], ]; // 使用扩展运算符... var arrNew = []; // 遍历二维数组 arr.forEach((v) => { // console.log(v); arrNew.push(...v); }); console.log(arrNew); // [10, 20, 30, 40, 50, 60, 70]
2,
// 数组降维: 把二维数组降低地道一维数组 var arr = [10, 20, [30, 40, 50], 60, 70]; // 使用扩展运算符... var arrNew = []; // 遍历二维数组 arr.forEach((v) => { if (Array.isArray(v)) { arrNew.push(...v); } else { arrNew.push(v); } }); console.log(arrNew); // [10, 20, 30, 40, 50, 60, 70]
Déduplication de tableau : supprimer les éléments en double dans le tableau
var arrNew = []; // 排序 arr.sort((a, b) => { return a - b; }); console.log(arr); // [10, 10, 20, 20, 30, 40, 50] // 判断 arr.forEach((v, i) => { if (v !== arr[i + 1]) { arrNew.push(v); } }); console.log(arrNew); // [ 10, 20, 30, 40, 50 ]
Principe : Les propriétés du l'objet utilisé ne peut pas avoir le même nom
Révision de la syntaxe de l'objet :
Valeur :
Le nom de l'attribut n'existe pas, et celui retiré n'est pas défini
Le nom de l'attribut existe, et la valeur de l'attribut correspondante doit être retirée
Affectation :
Le nom de l'attribut n'existe pas, ce qui équivaut à ajouter dynamiquement l'attribut
Le nom de l'attribut existe, puis modifiez la valeur de l'attribut d'origine
var obj = {}; // 检测有没有重复的元素 var arrNew = []; // 去重后存放元素的数组 // 遍历要去重的数组 arr.forEach((v) => { // 判断 if (obj[v] == undefined) { arrNew.push(v); // 不存在就把当前这个v存起来 obj[v] = "值"; // 把当前这个元素作为obj对象的属性存进obj对象里 } }); console.log(arrNew); // [ 10, 20, 30, 40, 50 ]
var arr = [ { type: "电子产品", name: "iPhone", price: 8888 }, { type: "家具", name: "桌子", price: 100 }, { type: "食品", name: "瓜子", price: 10 }, { type: "家具", name: "椅子", price: 380 }, { type: "电子产品", name: "小米手机", price: 1380 }, { type: "食品", name: "辣条", price: 5 }, { type: "食品", name: "咖啡", price: 50 }, ]; var obj = {}; var arrNew = []; arr.forEach((v) => { // console.log(v); if (obj[v.type] === undefined) { // 第一次出现这个产品类型 obj[v.type] = 1; // 把当前遍历出来的这个数据存进arrNew中 arrNew.push({ type: v.type, data: [v], }); } else { arrNew.forEach((v2, j) => { if (v.type === v2.type) { arrNew[j].data.push(v); } }); } }); console.log(arrNew);
Le résultat de sortie est le suivant :
Pour plus de connaissances liées à la programmation, veuillez visiter : Vidéo de programmation ! !
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!