标签: ecmascript-2016

字符串反转 内置 ES6

  • 已根据每个浏览器对String#reverse10 种实现进行了分析。

  • 自 2011 年以来,这些实施方式已得到解释。

  • 当ES6到来时,有很多代码变得更加优雅性能

  • 关于字符串反转,我想知道ES6是否支持它。

  • 不管怎样,我最终得到了这个语法:

    reverse=(str)=>[...str].reverse().join('');
    
    Run Code Online (Sandbox Code Playgroud)

我的问题是:

ES6/ES7 是否有内置 API 更优雅、更简洁性能更好?

javascript string reverse ecmascript-6 ecmascript-2016

2
推荐指数
1
解决办法
3396
查看次数

在 ES6 中检查对象是否为空

我需要检查状态是否被批准,所以我检查它是否为空。最有效的方法是什么?

回复

 {
      "id": 2,
      "email": "yeah@yahoo.com",
      "approved": {
        "approved_at": "2020"
      },
      "verified": {
        "verified_at": "2020"
      }
    }
Run Code Online (Sandbox Code Playgroud)

代码

    const checkIfEmpty = (user) => {
    if (Object.entries(user.verified).length === 0) {
      return true;
    }
    return false;
  };
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 ecmascript-2016

2
推荐指数
1
解决办法
1万
查看次数

如何在每次渲染之前重置 UseEffect React Hooks 中的数据?

这是情况。我useEffect用来过滤一些数据,它运行良好。这是代码和代码和

const data = [
  {name: 'aml', age: 10},
  {name: 'abcb', age: 12},
  {name: 'asr', age: 20},
  {name: 'plo', age: 30},
  {name: 'bvcq', age: 15},
  {name: 'bfro', age: 21},
  {name: 'zxwh', age: 19}
]

function App() {
  const [keyword, setKeyword] = React.useState('')
  const [result, setResult] = React.useState(data)
  const [isAged, setIsAged] = React.useState(false) 
  const [isNameLength3, setIsNameLength3] = React.useState(false)
  React.useEffect(() => {
    const doSearch = () => {
      // setResult(data)
      if (isAged) {
        setResult(result.filter(item => item.age >= 20)) …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs ecmascript-2016 react-hooks

1
推荐指数
1
解决办法
926
查看次数

从对象中删除密钥但仍显示响应

我正在尝试节点身份验证,我已设法将用户名和散列密码存储到我的数据库中,但我想返回 json 而不带散列密码。

我在发回 JSON 之前删除了密码密钥,但密码仍然显示在返回的结果中。

router.post("/signup", async (req, res, next) => {
  const user = await User.exists({ username: req.body.username });

  if (user) {
    const error = new Error("Username already exists");
    next(error);
  } else {
    const newUser = new User({
      username: req.body.username,
      password: req.body.password,
    });

    try {
      const result = await newUser.save();
      delete result.password;
      res.json(result);
    } catch (err) {
      res.json(err.errors);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

用户模型有一个预钩子,可以在保存之前对密码进行哈希处理:

userSchema.pre("save", async function save(next) {
  const user = this;

  if (!user.isModified("password")) return next();

  try {
    user.password …
Run Code Online (Sandbox Code Playgroud)

mongoose node.js express ecmascript-2016

1
推荐指数
1
解决办法
509
查看次数

Javascript:将对象分配给变量

我有一个具有一些属性的现有对象:

var props = {
  filters: {
    brightness: 0,
    opacity: 1,
  }
}
Run Code Online (Sandbox Code Playgroud)

因此,我想filter在变量声明期间将该对象的属性分配给另一个对象:

var sprite = {
  configs: {
    image: 'pic.png',
    // <- assign `props.filters` right here
  }
}
Run Code Online (Sandbox Code Playgroud)

结果我想得到这样的对象:

{
  configs: {
    image: 'pic.png',
    brightness: 0,
    opacity: 1,
  }
}
Run Code Online (Sandbox Code Playgroud)

sprite我可以在变量声明后这样做:

Object.assign(sprite.configs, props.filters);
Run Code Online (Sandbox Code Playgroud)

但是是否可以在变量声明期间分配另一个对象的属性?

如果一个对象中有很多属性,JS 允许在变量声明期间实现这样的赋值,以消除多余的后处理,这将非常方便。

javascript variables object ecmascript-2016

1
推荐指数
1
解决办法
2163
查看次数

Javascript-在对象数组的属性中搜索字符串

我有一组 JSON 对象。给定一个搜索字符串,我只想为那些将该字符串作为其属性之一的子字符串的对象过滤数组。我如何有效地做到这一点?

javascript json ecmascript-6 ecmascript-2016

0
推荐指数
2
解决办法
6849
查看次数

eslint 规则强制变量在块的顶部声明?

是否有 eslint 规则强制变量在块的顶部声明?该vars-on-top规则似乎只适用于var关键字,而不是我想要的(例如,它不允许for (var i = 0; ...)。这是一个人为的示例。

错误代码

doWork() {
    const work = this.getWork();

    if (work.isReady) { ... }

    let workResult = work.getResult();

    // ...

    return workResult;
}
Run Code Online (Sandbox Code Playgroud)

好的代码

doWork() {
    const work = this.getWork();
    let workResult;

    if (work.isReady) { ... }

    workResult = work.getResult();

    // ...

    return workResult;
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 eslint ecmascript-2016

0
推荐指数
1
解决办法
401
查看次数

是什么让 ES6 如此特别?

所以我最近才开始潜心研究 Web 开发。我很快收集到的一件事是 ES5 = 旧的,而 ES6 = 闪亮的和新的。我认为 ES6 是最新和最好的 ES 必须提供的。但我刚刚发现 ES6 落后 3 个标准,而且我一直在使用和喜爱的一些功能甚至都不属于它的一部分——它们出现在后来的规范中。那么为什么我读到的所有内容都让人觉得只有 ES5 和 ES6?

ecmascript-6 ecmascript-next ecmascript-2016 ecmascript-2017 ecmascript-2018

-1
推荐指数
1
解决办法
251
查看次数

ES6相反包括逻辑

为了从数组中删除对象,我可以使用以下代码找到我想要删除的对象:

this.data = this.data.filter(item => this.multipleSelectedIds.includes(item.id))
Run Code Online (Sandbox Code Playgroud)

但实际情况是我为this.data数组分配了我想要从中删除的所有对象.什么是ES6最佳实践逻辑来实现"排除"的类型,所以我得到的是所有id不存在的对象this.multipleSelectedIds而不是我现在拥有的正好相反的对象?

javascript ecmascript-2016

-3
推荐指数
1
解决办法
1015
查看次数