|
数组
方法参数操作返回值时间复杂度空间复杂度push()一个或多个元素在数组末尾添加一个或多个元素,并返回新数组的长度新数组的长度O(1)O(1)pop()无移除并返回数组的最后一个元素被移除的元素O(1)O(1)unshift()一个或多个元素在数组开头添加一个或多个元素,并返回新数组的长度新数组的长度O(n)O(n)shift()无移除并返回数组的第一个元素被移除的元素O(n)O(n)concat()一个或多个数组创建一个新数组,包含原数组和指定的数组合并后的新数组O(n)O(n)slice()起始索引和结束索引(可选)从原数组中返回选定的元素,生成一个新数组选定的元素组成的新数组O(k)O(k)splice()起始索引、要删除的元素个数和要添加的元素(可选)在指定位置修改数组,删除/添加元素被删除的元素组成的新数组O(n)O(n)indexOf()要查找的元素和起始搜索位置(可选)返回指定元素在数组中首次出现的位置,如果不存在则返回-1元素的索引或-1O(n)O(1)lastIndexOf()要查找的元素和起始搜索位置(可选)返回指定元素在数组中最后一次出现的位置,如果不存在则返回-1元素的索引或-1O(n)O(1)includes()要查找的元素和起始搜索位置(可选)判断数组是否包含指定元素布尔值O(n)O(1)join()连接符(可选)将数组中的所有元素连接成一个字符串连接后的字符串O(n)O(n)reverse()无颠倒数组中元素的顺序颠倒顺序后的数组O(n)O(1)sort()排序比较函数(可选)对数组元素进行排序,默认按照字母顺序排序排序后的数组O(n log(n))O(log(n))filter()筛选条件函数根据指定条件过滤数组中的元素,返回满足条件的新数组满足条件的新数组O(n)O(n)map()转换函数遍历数组,对每个元素执行指定操作,并返回新数组转换后的新数组O(n)O(n)forEach()遍历函数遍历数组,对每个元素执行指定操作,没有返回值无O(n)O(1)reduce()累积函数和初始值(可选)对数组中的元素执行累积操作,返回一个值累积结果O(n)O(1)find()筛选条件函数返回数组中满足条件的第一个元素,如果不存在则返回undefined第一个满足条件的元素O(n)O(1)findIndex()筛选条件函数返回数组中满足条件的第一个元素的索引,如果不存在则返回-1第一个满足条件的索引O(n)O(1)some()筛选条件函数检测数组中是否至少有一个元素满足指定条件布尔值O(n)O(1)every()筛选条件函数检测数组中是否所有元素都满足指定条件布尔值O(n)O(1)示例:
- function push(arr, ...elements) {
- for (let i = 0; i < elements.length; i++) {
- arr[arr.length] = elements[i];
- }
- return arr.length;
- }
复制代码- function pop(arr) {
- if (arr.length === 0) {
- return undefined;
- }
- const lastElement = arr[arr.length - 1];
- arr.length--;
- return lastElement;
- }
复制代码- function unshift(arr, ...elements) {
- for (let i = arr.length - 1; i >= 0; i--) {
- arr[i + elements.length] = arr[i];
- }
- for (let i = 0; i < elements.length; i++) {
- arr[i] = elements[i];
- }
- return arr.length;
- }
复制代码- function shift(arr) {
- if (arr.length === 0) {
- return undefined;
- }
- const firstElement = arr[0];
- for (let i = 1; i < arr.length; i++) {
- arr[i - 1] = arr[i];
- }
- arr.length--;
- return firstElement;
- }
复制代码 对象
方法参数操作返回值时间复杂度空间复杂度Object.keys()对象返回一个包含对象所有可枚举属性的键的数组包含对象键的数组O(n)O(n)Object.values()对象返回一个包含对象所有可枚举属性的值的数组包含对象值的数组O(n)O(n)Object.entries()对象返回一个包含对象所有可枚举属性键值对的数组包含对象键值对的数组O(n)O(n)Object.assign()目标对象和一个或多个源对象将一个或多个源对象的属性复制到目标对象,并返回目标对象目标对象O(m)O(1)Object.freeze()对象冻结对象,使其属性不可修改冻结后的对象O(n)O(1)Object.seal()对象封闭对象,使其属性不可添加或删除,但可以修改封闭后的对象O(n)O(1)Object.create()原型对象和可选的属性描述符对象创建一个新对象,使用指定的原型对象和属性描述符对象新创建的对象O(1)O(1)Object.getPrototypeOf()对象返回指定对象的原型对象对象的原型O(1)O(1)Object.hasOwnProperty()对象和属性名判断对象自身是否具有指定的属性布尔值O(1)O(1)Object.is()两个值比较两个值是否严格相等布尔值O(1)O(1)示例:
- function keys(obj) {
- const result = [];
- for (let key in obj) {
- if (obj.hasOwnProperty(key)) {
- result.push(key);
- }
- }
- return result;
- }
复制代码- function values(obj) {
- const result = [];
- for (let key in obj) {
- if (obj.hasOwnProperty(key)) {
- result.push(obj[key]);
- }
- }
- return result;
- }
复制代码- function entries(obj) {
- const result = [];
- for (let key in obj) {
- if (obj.hasOwnProperty(key)) {
- result.push([key, obj[key]]);
- }
- }
- return result;
- }
复制代码- function assign(target, ...sources) {
- for (let i = 0; i < sources.length; i++) {
- const source = sources[i];
- for (let key in source) {
- if (source.hasOwnProperty(key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
- }
复制代码 字符串
方法参数操作返回值时间复杂度空间复杂度length无返回字符串的长度字符串长度O(1)O(1)concat()一个或多个字符串或值连接多个字符串或值,并返回新的字符串新字符串O(n)O(n)indexOf()要查找的字符串和起始搜索位置(可选)返回指定字符串在源字符串中首次出现的位置,如果不存在则返回-1字符串的索引或-1O(n)O(1)lastIndexOf()要查找的字符串和起始搜索位置(可选)返回指定字符串在源字符串中最后一次出现的位置,如果不存在则返回-1字符串的索引或-1O(n)O(1)includes()要查找的字符串和起始搜索位置(可选)检测源字符串是否包含指定字符串布尔值O(n)O(1)slice()起始索引和结束索引(可选)提取源字符串中指定范围的字符并返回一个新字符串选定的子字符串O(k)O(k)substring()起始索引和结束索引(可选)提取源字符串中指定范围的字符并返回一个新字符串,与slice()类似但不支持负索引选定的子字符串O(k)O(k)substr()起始索引和长度(可选)提取源字符串中从指定索引开始的指定长度字符并返回一个新字符串选定的子字符串O(k)O(k)replace()要替换的字符串和替换的新字符串替换源字符串中的指定子字符串为新的字符串替换后的新字符串O(n)O(n)trim()无去除源字符串两端的空格和空白字符去除两端空白的字符串O(n)O(n)toUpperCase()无将源字符串中的所有字符转换为大写大写的字符串O(n)O(n)toLowerCase()无将源字符串中的所有字符转换为小写小写的字符串O(n)O(n)split()分隔符和可选的分割次数(可选)将源字符串按照指定的分隔符进行分割,并返回一个字符串数组分割后的字符串数组O(n)O(n)示例:
- function getLength(str) {
- let count = 0;
- for (let i = 0; i < str.length; i++) {
- count++;
- }
- return count;
- }
复制代码- function concat(str1, str2) {
- return str1 + str2;
- }
复制代码- function indexOf(str, searchValue, startIndex = 0) {
- for (let i = startIndex; i < str.length; i++) {
- if (str.slice(i, i + searchValue.length) === searchValue) {
- return i;
- }
- }
- return -1;
- }
复制代码- function lastIndexOf(str, searchValue, startIndex = str.length - 1) {
- for (let i = startIndex; i >= 0; i--) {
- if (str.slice(i, i + searchValue.length) === searchValue) {
- return i;
- }
- }
- return -1;
- }
复制代码- function includes(str, searchValue) {
- return str.indexOf(searchValue) !== -1;
- }
复制代码- function slice(str, start, end) {
- let result = '';
- const length = str.length;
- if (start < 0) {
- start = Math.max(length + start, 0);
- } else {
- start = Math.min(start, length);
- }
- if (end === undefined) {
- end = length;
- } else if (end < 0) {
- end = Math.max(length + end, 0);
- } else {
- end = Math.min(end, length);
- }
- for (let i = start; i < end; i++) {
- result += str[i];
- }
- return result;
- }
复制代码- function replace(str, searchValue, replaceValue) {
- return str.split(searchValue).join(replaceValue);
- }
复制代码- function trim(str) {
- return str.replace(/^\s+|\s+$/g, '');
- }
复制代码- function toUpperCase(str) {
- let result = '';
- for (let i = 0; i < str.length; i++) {
- const charCode = str.charCodeAt(i);
- if (charCode >= 97 && charCode <= 122) {
- result += String.fromCharCode(charCode - 32);
- } else {
- result += str[i];
- }
- }
- return result;
- }
复制代码 来源:https://www.cnblogs.com/shuangyou99/p/qian-duan-cao-zuo-fang-fa.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|