ES6处理数据的方法

一、字符串

repeat

repeat方法返回一个新字符串,表示将原字符串重复n次。

"hello,".repeat(3); // hello,hello,hello,
includes & startsWith & endsWith

includes : 是否找到参数字符串,返回布尔值;

startsWith: 参数字符串是否在原字符串的头部,返回布尔值。

endsWith: 参数字符串是否在原字符串的尾部,返回布尔值。

三个方法都接受两个参数,第一个参数是参数字符串,第二个是开始检索的位置

let str = "同一个世界同一个梦想";
str.startsWith("同一个");
str.startsWith("一个");
str.endsWith("梦想");
str.endsWith("梦");
str.includes("同");
str.includes("同", 3);
padStart padEnd

padStart:如果字符串不够长度,在头部补全字符

padEnd:如果字符串不够长度,在尾部补全字符

两个方法都接收两个参数,第一个是指定字符串的最小长度,第二个用来补全的字符串。如果指定字符串的长度,等于或大于指定的最小长度(第一个参数)。就直接返回原字符串,如果忽略第二个参数,就使用空格补全原字符串!

let str = "同一个世界同一个梦想";
str.padStart(2, "hello,"); // 'hello,hello,同一个世界同一个梦想'
str.padStart(2); // '  同一个世界同一个梦想'
str.padEnd(2, ",hello"); // '同一个世界同一个梦想,hello,hello'
str.padEnd(2); // '同一个世界同一个梦想  '

二、数值

isNaN

检查一个值是否为NaN

Number.isNaN(NaN); // true
Number.isNaN(14); // false
isInteger

判断一个值是否为整数,需要注意的是,比如1和1.0都是整数。

Number.isInteger(1); // true
Number.isInteger(1.0); // true
Number.isInteger(1.2); // false
sign 正数 负数 0

判断一个数到底是正数,负数还是0

Math.sign(-10); // -1
Math.sign(10); // +1
Math.sign(-0); // -0
Math.sign(0); // +0
Math.sign(NaN); // NaN
Math.sign("10"); // +1
Math.sign("hello"); // NaN
Math.sign(""); // 0
Math.sign(true); // +1
Math.sign(false); // 0
Math.sign(null); // 0
trunc 去除小数部分

去除一个数的小数部分,返回整数部分

Math.trunc(1.1); // 1
Math.trunc(-1.1); // -1
Math.trunc(-0.1); // -0
Math.trunc("123.456"); // 123
Math.trunc("hello"); // NaN
Math.trunc(""); // 0

三、对象

assign

用于对象的合并,复制到目标对象

let name = { name: "hello" },
  sex = { sex: "male" },
  city = { city: "hanghzhou" };
Object.assign(name, sex, city); // {name: "hello", sex: "male", city: "hanghzhou"}
keys

根据对象自身可遍历的键名进行遍历,返回一个数组

let info = { name: "hello", sex: "male", city: "hanghzhou" };
Object.keys(info); // ["name", "sex", "city"]
values

根据对象自身可遍历的键值进行遍历,返回一个数组

Object.values(info); // ["hello", "male", "hanghzhou"]
entries

根据对象自身可遍历的键值对进行遍历,返回一个数组

Object.entries(info); // [["name", "hello"],["sex", "male"],["city", "hanghzhou"]]

四、数组

from

from用于将两类对象转为真正的数组:类似数组的对象和可遍历的对象

Array.from("hello"); // ["h", "e", "l", "l", "o"]
//常见的使用方式还有-将Dom集合和arguments转成真正的数组
let oLi = document.querySelectorAll("li");
Array.from(oLi).forEach(item => {
  console.log(item);
});
// arguments对象
function fn() {
  let args = Array.from(arguments);
}

顺便说下Set

let newSet = new Set(["a", "b", "a", "c"]);
Array.from(newSet); // ['a', 'b','c']
//ES6 新增的数据结构--Set。它类似于数组,但是成员的值都是唯一的,不重复的。
//相信大家很容易想到怎么用了,比如数组去重,用Set实现就简单多了。
function removeRepeatArray(arr) {
  //return [Array.from(arr)]
  return [...new Set(arr)];
}
find

用于找出第一个符合条件的数组成员。如果没找到符合条件的成员就返回underfind

[1, 2, 3, 4].find(n => n > 2); //3
findIndex

用于找出第一个符合条件的数组成员的索引。

[1, 2, 3, 4].findIndex(n => n > 2); // 2
includes

用于某个数组是否包含给定的值,返回一个布尔值。如果没找到符合条件的成员就返回underfind

[1, 2, 3].includes(2); // true
[1, 2, 3].includes(5); // false
[1, 2, 3, NaN].includes(NaN); // true
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ES6(ECMAScript 6)引入了许多新的数据处理特性和语法,使得数组和对象的操作更加方便和高效。这里我们可以介绍几个常用的ES6数据处理练习: 1. **数组方法**: - `map()`:创建一个新的数组,对原数组的每个元素应用一个函数。 - `filter()`:创建新数组,只包含通过指定测试的所有元素。 - `reduce()`:对数组的所有元素执行一个由您提供的reducer函数,将其结果汇总为单个返回值。 - `find()` 和 `findIndex()`:查找数组满足特定条件的第一个元素及其索引。 2. **解构赋值**: - 对象解构:`let { prop1, prop2 } = obj;` - 数组解构:`let [a, b] = [1, 2];` 3. **数组推导**(Array Comprehensions): - 新特性,虽然不是严格ES6,但可以用来简洁地创建新数组。 ```javascript let squared = [x ** 2 for (x of array)]; ``` 4. **扩展运算符(...)**: - `let newArray = [...oldArray, newElement];` 或 `function spreadArgs(...args) {}` - 用于合并数组或复制数组,以及将剩余参数传递给函数。 5. **Set和Map**: - Set存储唯一的值,不保证顺序。 - Map存储键值对,键无需是字符串,提供了更灵活的数据结构。 6. **模板字面量(Template literals)**: - 使用反引号(``)创建可嵌入表达式的字符串。 ```javascript let name = 'Alice'; let greeting = `Hello, ${name}!`; ``` 7. **数组方法的优化**:比如使用`Array.from()`创建新数组,避免不必要的拷贝。 8. **Array.observe()**(仅限于某些浏览器,已被弃用,但可以了解观察数组变化的思想)。 在实践,你可以通过编写一些小的代码片段,如操作数组、转换数据格式、过滤数据等,来熟悉和巩固这些新特性的使用。同时,完成在线编程挑战或实际项目也是很好的学习方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值