Nodejs의 Set 및 Map 사용법에 대한 간략한 토론

青灯夜游
풀어 주다: 2021-03-19 09:59:18
앞으로
4549명이 탐색했습니다.

이 기사에서는 Node에서 Set 및 Map을 사용하는 방법을 안내합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

Nodejs의 Set 및 Map 사용법에 대한 간략한 토론

관련 권장 사항: "nodejs 튜토리얼"

데이터 유형 집합

은 중복 요소를 저장할 수 없다는 점에서 차이점이 있습니다

  • 응용 프로그램 시나리오: 배열 중복 제거

  • eg01: 기본 사용법

let set1 = new Set([10, 20, 30, 40, 10, 20, 30, 50]);
console.log(set1); // Set(5) { 10, 20, 30, 40, 50 }
로그인 후 복사
  • eg02: 배열 중복 제거
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 ]
로그인 후 복사
  • eg03: 배열 중복 제거, 위 작업을 한 문장으로 바꿔보세요
let arr = [10, 20, 30, 40, 10, 20, 30, 50];
let arrNew = [...new Set(arr)];
console.log(arrNew); // [ 10, 20, 30, 40, 50 ]
로그인 후 복사

템플릿 문자열

    es5
문자열에는 형식이 없고 변수를 쓸 수 없습니다

    es6
템플릿 문자열

let author = "波波";
let str = `
    静夜思
        ${author}
    床前明月光,
    低下鞋两双,
    举头望明月,
    低头思阿香.

 `;
console.log(str);
로그인 후 복사

    eg01:
  • let name = "千里";
    let age = 38;
    let score = 100;
    console.log(`我的名字是${name},我的年龄是${age},我的成绩是${score}`);
    로그인 후 복사
    eg02:
  • function test() {
      return "哈哈哈";
    }
    console.log(`我是神雕大侠,我在笑:${test()}`); // 我是神雕大侠,我在笑
    로그인 후 복사
배열을 보완하는 방법

1.forEach ()

배열을 탐색하고 탐색된 각 항목을 콜백 함수에 전달합니다.

반환 값 없음

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()

배열을 탐색하면 반환 값이 있습니다

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

filter() 메서드는 새 배열을 반환합니다. 새 배열의 요소는 검사를 통과한 후 조건을 충족하는 요소입니다

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);
로그인 후 복사

객체 파괴 및 할당 uring
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 }
로그인 후 복사
array 치수 감소

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]
로그인 후 복사


array 중복 제거

어레이 중간 복제 : 배열에서 중복 항목을 제거합니다 : 보충 중복 제거 방법 1 : 정렬 후 판단 방법

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 ]
로그인 후 복사

두 가지: 중복 제거의 보완 방법 2: 개체 방법 사용
  • 원리: 사용되는 개체의 속성은 동일한 이름을 가질 수 없습니다
    개체의 문법 검토:
  • 값:

The 속성 이름이 존재하지 않습니다. 제거된 것은 정의되지 않았습니다

속성 이름이 존재합니다. 제거된 것은 해당 속성 값이어야 합니다

할당:

속성 이름이 존재하지 않습니다. 이는 동적으로 속성을 추가하는 것과 같습니다.

속성 이름이 존재하는 경우 원래 속성 값을 수정하세요

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);
로그인 후 복사

출력 결과는 다음과 같습니다.

더 많은 프로그래밍 관련 지식을 보려면 다음을 방문하세요.

프로그래밍 비디오

! !

위 내용은 Nodejs의 Set 및 Map 사용법에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿