相关疑难解决方法(0)

为什么本机数组函数比循环慢得多

问题在标题中,但这是一个更长的解释.

很久以前我学到了一些不错的javascript函数,如reduce,filter,map .我真的很喜欢它们并开始经常使用它们(它们看起来很时尚,我认为因为它们是原生功能,所以它们应该比我的旧环更快).

最近我需要执行一些重js计算,所以我决定检查它们的速度有多快,令我惊讶的是它们不是更快,它们要慢得多(慢3到25倍)

此外,我还没有检查每个功能,这是我的jsperf测试:

那么为什么本机函数比旧循环慢得多,如果它们没有做得更好,那么创建它们的重点是什么.

我假设速度损失是由于调用它们内部的函数,但它仍然不能证明这种损失.此外,我不明白为什么用这些函数编写的代码更具可读性,更不用说每个浏览器都不支持它们.

javascript performance

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

Javascript的.includes函数无法正确使用对象数组

我有一个使用该.includes()函数的对象数组。我正在用数组中的对象搜索该数组(对象是相同的)。但是似乎没有匹配项。我已经在这个小提琴中重复了这个问题。代码也在下面。那么检查数组是否包含对象的正确方法是什么?

let list1 = [{
    name: "object1"
  },
  {
    name: "object2"
  },
  {
    name: "object3"
  },
  {
    name: "object4"
  }
]


if (list1.includes({
    name: "object1"
  })) {
  document.write('contains')
} else {
  document.write('doesnt')
}
Run Code Online (Sandbox Code Playgroud)

javascript node.js

3
推荐指数
2
解决办法
6628
查看次数

检查 lodash 中的对象数组的属性值

鉴于以下

var content = [{
        "set_archived": false,
        "something": [{
            "id": "aa7bb3db-19a2-4ef6-5944-892edaaf53c3",
            "modified": "2016-12-01T18:23:29.743333Z",
            "created": "2016-12-01T18:23:29.743333Z",
            "archived": false
        }]
    },
    {
        "set_archived": true,
        "something": [{
            "id": "aa7bb3db-19a2-4ef6-5944-892edaaf53c3",
            "modified": "2017-01-30T19:42:29.743333Z",
            "created": "2017-01-30T19:42:29.743333Z",
            "archived": false
        }]
    }
];
Run Code Online (Sandbox Code Playgroud)

使用 Lodash,我如何确定对象数组中的一个set_archivedsomething.archived是否等于真?

所以在这种情况下,因为第二个对象set_is_archived是真的,那么预期的响应应该是真的。如果任一对象中的所有项目均为假,则响应应为假。

javascript lodash

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

如何检查对象数组是否包含字符串

假设我有一个对象数组:

let arr = [
   {
    name: 'Jack',
    id: 1
   },
   {
    name: 'Gabriel',
    id: 2
   },
   {
    name: 'John',
    id: 3
   }
]
Run Code Online (Sandbox Code Playgroud)

我需要检查该数组是否包含名称“Jack”,例如使用:

if (arr.includes('Jack')) {
   // don't add name to arr

} else {
  // push name into the arr

}
Run Code Online (Sandbox Code Playgroud)

但是 arr.includes('Jack') 返回 false,如何检查对象数组是否包含名称?

javascript ecmascript-6

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

检查对象数组是否包含另一个对象

我有这个代码:

const arr = [
{name:"Bill", age:11},
{name:"Bill", age:11}
]
console.log(arr.includes({name:"Bill", age:11}))
Run Code Online (Sandbox Code Playgroud)

这里我想检查数组是否包含{name:"Bill", age:11}.
为什么我会假?以及如何使用包含进行此检查?

javascript

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

标签 统计

javascript ×5

ecmascript-6 ×1

lodash ×1

node.js ×1

performance ×1