首页 > 其他分享 > JS解密解密必须要会的一些小语法技巧

JS解密解密必须要会的一些小语法技巧

时间:2023-02-08 22:01:11浏览次数:51  
标签:arr const 解密 value JS key isEqual 要会 id

此文章由​​jsjiami.com​​技术提供,需要js加解密可直接官网底部联系方式。

一、数组相关

1、数值类型转数组

  • JS版本
const castArray = (value) => (Array.isArray(value) ? value : [value]);
castArray(1); // [1]
  • TS版本
const castArray = <T,_>(value: T | T[]): T[] => (Array.isArray(value) ? value : [value]);
castArray(1); // [1]

2、校验数组是否为空

  • JS版本
const isEmpty = (arr) => Array.isArray(arr) && !arr.length;
isEmpty([]); // true
  • TS版本
const isEmpty = <T,_>(arr: T[]): boolean => Array.isArray(arr) && !arr.length;
isEmpty([1, 2, 3]); // false

3、将对象数组转为单个对象

  • JS版本
const toObject = (arr, key) => arr.reduce((a, b) => ({ ...a, [b[key]]: b }), {});
//Or
const toObject = (arr, key) => Object.fromEntries(arr.map((it) => [it[key], it]));
  • TS版本
const toObject = <T extends Record<string, any>, K extends keyof T>(arr: T[], key: K): Record<string, T> => (
arr.reduce((a, b) => ({ ...a, [b[key]]: b }), {})
);
// Or
const toObject = <T extends Record<string, any>, K extends keyof T>(arr: T[], key: K): Record<string, T> => (
Object.fromEntries(arr.map((it) => [it[key], it]))
);
  • 示例
toObject(
[
{ id: '1', name: 'Alpha', gender: 'Male' },
{ id: '2', name: 'Bravo', gender: 'Male' },
{ id: '3', name: 'Charlie', gender: 'Female' },
],
'id'
);
/*
{
'1': { id: '1', name: 'Alpha', gender: 'Male' },
'2': { id: '2', name: 'Bravo', gender: 'Male' },
'3': { id: '3', name: 'Charlie', gender: 'Female' },
}
*/

4、两个数组比较

  • JS版本
// `a` and `b` are arrays
const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
//Or
const isEqual = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]);
isEqual([1, 2, 3], [1, 2, 3]); // true
  • TS版本
const isEqual = <T,_>(a: T[], b: T[]): boolean => JSON.stringify(a) === JSON.stringify(b);
//Or
const isEqual = <T,_>(a: T[], b: T[]): boolean => a.length === b.length && a.every((v, i) => v === b[i]);
isEqual([1, 2, 3], [1, '2', 3]); // false

标签:arr,const,解密,value,JS,key,isEqual,要会,id
From: https://blog.51cto.com/u_15781271/6044924

相关文章

  • three.js教程4-层级模型
    1、组对象Group、层级模型-形成树状结构//创建两个网格模型mesh1、mesh2constgeometry=newTHREE.BoxGeometry(20,20,20);constmaterial=newTHREE.MeshLambe......
  • 结构体与json
    json是js中的数据表示方法,后面为了标准,同时json也很方便就前后端都在使用把结构体转换为json格式字符串序列化packagemainimport("encoding/json""fmt")t......
  • three.js教程3-模型对象、材质
    1、Object3D的position和scale是三维向量Vector3因此模型的位置和缩放等变化,也是使用Vector3的属性和方法实现,查询文档Vector3。三维向量Vector3有xyz三个分量,查看three.......
  • C# Newtonsoft.Json null 转空值{} 把对象null转换{}为JSON字符串
    ///<summary>///把对象null转换{}为JSON字符串///</summary>///<paramname="o">对象</param>///<returns>JSON字符串</return......
  • js实现简单倒计时
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><metaname="viewport"content="width=device-width,initial-scale=1"><title></title></head>......
  • 前端面试题(1) js
    keywords:JS深拷贝深拷贝:针对【引用】类型,传递的是地址,多变量同时指向同一块内存地址(比如某个对象)letobj1={ //1.不需要处理 //基本数据类型可以不做处理,typeof!==......
  • 前端页面分页算法 js+php
    实现效果: 实现思路:通过当前选中页码数值和总页码数量,计算返回结果,以数组的形式返回。遍历数组内容,完成页面渲染。 php算法:/***getNavigatePage**@......
  • 数组的常用方法 js 230208
    判断是否是数组头部操作头部添加头部删除尾部操作未位添加push未位删除pop排序sort方法,接收一个参数,完成排序reverse方法,反转查找indexOflastIndexOf转字符串数组拼字符串字......
  • js实现页面窗口录制
    一、在线demo1、在线demo地址:http://www.lb0125.com/videoRecord.html 注:目前测试发现只有在chrome浏览器里可以使用二、直接上代码<!DOCTYPEhtml><html><head>......
  • JSP概念 原理 脚本
    JSP概念JavaServerPages:java服务端页面可以理解为:一个特殊页面,其中既可以指定定义html标签 有可以定义java代码用于简化书写原理......