小编kir*_*oid的帖子

单行从ES 6中的对象获取一些属性

如何编写一个函数,在ES6中以最紧凑的方式只占用少量属性?

我已经提出了使用解构+简化对象文字的解决方案,但我不喜欢在代码中重复的字段列表.

有更薄的解决方案吗?

(v) => {
    let { id, title } = v;
    return { id, title };
}
Run Code Online (Sandbox Code Playgroud)

javascript destructuring ecmascript-harmony ecmascript-6 ecmascript-next

145
推荐指数
7
解决办法
5万
查看次数

symfony2控制台参数

我想为symfony命令创建一个命名参数/选项.并希望symfony区分这3个选项:

  • my:command,这意味着什么 my:command --arg=null
  • my:command --arg, 意思是 my:command --arg=defalutValue
  • my:command --arg=someValue,这是完全明确的.

即我想在该命令下使用两种工作模式:默认值为1,非默认值为附加参数,并且该arg应具有默认值.

我明白,我可以创建2个args,但我正在寻找一个arg-to-rule-them-all解决方案.

是否可以通过内置类实现这一目标,还是应该创建自定义类?如果解决方案仅适用于自定义类,请告诉我,从哪里开始(即"创建...的子类"或"安装名为...的包"),因为我不熟悉Symfony2的架构.

console command-line-arguments symfony

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

如何衡量脚本执行和*解析*时间?

据我所知,脚本是在javascript中同步下载和执行的.因此,如果我们编写以下代码:

<script type='text/javascript'>console.time('core')</script>
<script type='text/javascript' src="guicore.js"></script>
<script type='text/javascript'>console.timeEnd('core')</script>
Run Code Online (Sandbox Code Playgroud)

我们将在控制台的总时间内看到下载,解析和执行js.我们如何排除解析时间?只需添加类似的文件,但所有代码都已注释掉.或多或少,这种技术应该有效.

问题是这只是不起作用=)

我对代码进行了优化,将执行时间从90毫秒减少到25毫秒,但Chrome的时间约为100±10ms,Firefox的时间约为160±15ms.

好吧,我知道我可以使用分析器,但问题是:"如何正确测量js解析时间"以及我测量了什么.Research.reverse-engineering非常有趣,但也许有人深入了解这个领域.

javascript profiling

7
推荐指数
2
解决办法
4758
查看次数

鼠标光标根据事件更改

我有一个我要发送的ajax请求.当请求开始时,我有

  document.body.style.cursor = "wait";
Run Code Online (Sandbox Code Playgroud)

它会立即将光标的外观更改为旋转圆圈.

当请求结束时,我有

  document.body.style.cursor = "default";
Run Code Online (Sandbox Code Playgroud)

但是,这只会在用户移动鼠标时将光标返回到其原始状态.如果鼠标保持不动,则光标不会改变.当您将其设置为"自动"或任何其他类型时,光标更改将仅在其移动时触发.

有任何想法吗?

javascript css ajax jquery

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

esmap + minify的source maps util

有没有办法直接为ES6代码提供源映射?即我编写ES6代码,用例如es6-transpiler进行转换,然后将ES5缩小并合并到一个文件中.但是我希望在原版ES6中有源代码.可能吗?

任何转录器/ minifiers和构建工具(grunt,gulp)就足够了.


我根本不同意"偏离主题"的决定,因为问题是关于某些实际问题.尽管如此,我今天提供了一个aswer:

https://github.com/azu/multi-stage-sourcemap

porting ecmascript-5 source-maps ecmascript-6

6
推荐指数
0
解决办法
427
查看次数

什么是在Haskell中模拟有状态闭包的正确方法

上下文:我需要编写一个主要是无状态的编译器,它将VM字节码转换为机器码.大多数VM命令都可以使用纯函数进行无状态转换,如下所示:

compilePop = ["mov ax, @sp", "dec ax", "mov @sp, ax"]

compile :: VM_COMMAND -> [String]
compile STACK_POP = compilePop 

-- compile whole program
compileAll :: [VM_COMMAND] -> [String]
compileAll = flatMap compile
Run Code Online (Sandbox Code Playgroud)

但是有些命令需要插入标签,每次调用都应该是不同的.

我理解如何使用整个编译器的状态对象"global"来执行此操作:

compileGt n = [label ++ ":", "cmp ax,bx", "jgt " ++ label]
                where label = "cmp" ++ show n

compile :: Int -> COMPILER_STATE -> VM_COMMAND -> (COMPILER_STATE, [String])
-- here state currently contains only single integer, but it will grow larger
compile lcnt STACK_POP …
Run Code Online (Sandbox Code Playgroud)

closures haskell state-monad

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

清除推进缓存(实例池)

我需要使用propel在一次php执行中强制重读数据.我已经有了一些hacky解决方案:为相应的类调用init%modelName%,但想要更好的东西.

是否有任何单个呼叫或服务配置选项?就像杀死整个实例池一样.

关于服务:我们使用symfony2并且只在一个特定情况下不需要缓存,因此我们可以为此创建甚至单独的环境.

propel symfony

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

谷歌代码果酱2018年node.js样板

是否有人能够成功提交Google Code Jam 2018解决方案node.js?我对读取和输出数据的“样板”感兴趣。

事情是我尝试过的,它说“运行时错误”,没有任何更多细节,所以我不得不用另一种语言编写?

此解决方案在本地对我有效。

我也将我的解决方案转换为另一种语言,并且它可以正常工作,所以我很确定问题出在样板中,而不是解决方案中。

const fs = require('fs');

function solve(shield, program) { ... }

var content = fs.readFileSync(0, 'utf8');
var lines = content.split(/\r?\n/);
var cases = +lines[0];

var out = [];
for (var i = 1; i <= cases; i++) {
    var [shield, program] = lines[i].split(' ');
    var result = solve(+shield, program);
    out.push(`Case #${i}: ${result === -1 ? 'IMPOSSIBLE' : result}`);
}

fs.writeFileSync(1, out.join('\n'));
Run Code Online (Sandbox Code Playgroud)

node.js

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

页面未在ie8中呈现.仅在兼容性视图模式下呈现

我在IE8 +浏览器中渲染页面时遇到问题,它可以与FireFox一起使用.如果我保持代码如下,那么它不会在IE8 +中呈现页面.它仅在兼容性视图模式下呈现,但在正常模式下不呈现.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!--[if lt IE 7]><html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8 lt-ie7" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]-->
<!--[if IE 7]><html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]-->
<!--[if IE 8]><html lang="en" class="no-js lt-ie10 lt-ie9" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]-->
<!--[if IE 9]><html lang="en" class="no-js lt-ie10" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]-->
<!--[if gt IE 9]><!--><html lang="en" class="no-js" xmlns="http://www.w3.org/1999/html" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <!--<![endif]-->

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <link type="text/css" rel="stylesheet" href="./public/css/styles.css">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.js"></script> …
Run Code Online (Sandbox Code Playgroud)

css html5 internet-explorer

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