相关疑难解决方法(0)

Javascript`降低`性能

我最近花了一些时间来研究转换器(函数式编程中的工具,可以在不失去代码可读性/灵活性的情况下提高性能),当我开始测试它们的实际速度时,我得到了一些非常令人失望的结果。考虑:

const inc = x => x + 1;

const isEven = x => x % 2 === 0;

// simplest, shortest way I would be comfortable with if performance wasn't an issue

const mapFilter = xs => xs.filter(isEven).map(inc);

// transducers way

// function composition
const compose = (...fns) => x => fns.reduceRight((y, f) => f(y), x);

const map = f => step => (a, c) => step(a, f(c));
const filter = p => step => (a, c) => (p(c) …
Run Code Online (Sandbox Code Playgroud)

javascript reduce functional-programming transducer

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

将对象映射到ES6中的对象数组

如何在保留键名的同时将对象转换为对象数组?

// actual 
obj = {
  key1: null,
  key2: "Nelly",
  key3: [ "suit", "sweat" ]
} 

// expected 
arr = [
  { key2: "Nelly" },
  { key3: [ "suit", "sweat" ] }
]
Run Code Online (Sandbox Code Playgroud)

目前我的解决方案是......

 var arr = Object.keys(obj).map(key => { if (obj[key]) return { key: obj[key] } });
Run Code Online (Sandbox Code Playgroud)

返回

arr = [
  undefined,
  { key: "Nelly" },
  { key: [ "suit", "sweat" ] }
]
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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

带 if 条件的数组 .filter 和 .map OR .map

最近我正在对一个数组进行某种过滤,我想出了两种情况,但我不知道该使用哪一种。

性能方面,哪个更好用。

arr.filter(someCondition).map(x => x.something)
Run Code Online (Sandbox Code Playgroud)

或者

arr.map(x => {
    if(someCondition) {
        return x.something
    }
})
Run Code Online (Sandbox Code Playgroud)

需要注意的一件事是我正在使用 react,所以undefined在返回数组中有值(不要在里面返回任何东西.map),这是完全可以接受的。

这涉及很多问题,例如,数组中有多少个元素,然后有多少个元素会通过条件,这就是让人想知道哪个更好的原因。

那么,考虑n个元素和所有元素都通过条件并且没有元素通过条件的情况,哪个性能更好?

.filter().map().mapif内部?

javascript arrays ecmascript-6

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