小编Pau*_*aul的帖子

node.js和浏览器代码重用:将常量导入模块

我在JavaScript中有一些常量,我想在几个文件中重用,同时保存键入,减少错误输入的错误,保持运行时性能高,并且对node.js服务器脚本或客户端Web浏览器脚本有用.

例:

const cAPPLE = 17;
const cPEAR = 23;
const cGRAPE  = 38;
...(some later js file)...
for...if (deliciousness[i][cAPPLE] > 45) ...
Run Code Online (Sandbox Code Playgroud)

以下是我可以做的一些事情:

  1. 将const列表复制/粘贴到使用的每个文件的顶部.哦,哎呀.我宁愿不.这与保持常量名称简洁和简单兼容.如果列表中的任何内容发生变化,它会违反DRY并引发各种可怕的错误.

  2. 常量列表---> const.js

在浏览器上,这是FINE ...脚本被html文件输入并且工作正常.

但是在node.js上,require机制改变了常量名称,干扰了代码重用,需要更多的输入,因为需要工作....

AFAIK对于没有使用全局变量的任何const.js,这在设计中在node.js中不起作用:

require('./const.js');
for...if...deliciousness[i][cAPPLE] > 45 ...;  
Run Code Online (Sandbox Code Playgroud)

这是node.js的方式:

(... const.js ....)
exports.APPLE = 17;
(... dependency.js ... )
var C = require('./const.js');
for...if...deliciousness[i][C.APPLE] > 45..... 
Run Code Online (Sandbox Code Playgroud)

所以我要么必须有两个常量文件,一个用于node.js需要,一个用于浏览器,或者我必须使用列表中的其他内容...

3使得要导入的对象的常量属性...仍然需要两个文件...因为node.js导入方式与浏览器不匹配.也使名称更长,可能需要更多的时间来进行查找,正如我所暗示的那样,可能会出现在循环中.

4外部常量列表,内部适配器....读取外部常量,无论如何存储,都放入每个文件的内部结构中,而不是直接尝试使用外部列表

const.js
exports.cAPPLE = 17

browser.js
const cAPPLE = exports.cAPPLE;
...code requiring cAPPLE...

node.js
CONST = require(./const.js)
const cAPPLE = CONST.cAPPLE;
...code requiring cAPPLE... …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

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

为什么我不能使用_.map创建一个随机数组(new Array(n),Math.random)?

我想制作一个0到1之间的随机数组,所以我试过:

var randList = _.map(new Array(5), Math.random);
Run Code Online (Sandbox Code Playgroud)

但我没有得到我预期的随机元素列表,而是:

console.log(JSON.stringify(randList));
"[null,null,null,null,null]"
Run Code Online (Sandbox Code Playgroud)

为什么我得到一个null数组而不是随机数?

javascript arrays underscore.js

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

如何在不构建临时列表的情况下计算唯一排列的数量?

如何计算这个数字而不是枚举所有排列,然后创建集合以切断所有重复?

len(set(itertools.permutations('aaabbb')))
20

len(set(itertools.permutations('aabb')))
6
Run Code Online (Sandbox Code Playgroud)

python math combinatorics

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

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

小学阿贝尔群体

我刚刚在维基百科上读到了与位字段有关的基本阿贝尔群.如果有人能够解释我这个特定的段落,我会努力完全掌握位字段,我将不胜感激.

c field bit finite-group-theory

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

然后组合排序Javascript数组.获得不可预测的结果

这就是数据如何给我,在一个对象w /由管道char分隔的元素.

首先,我需要组合两个数组,然后按字母顺序排序.以下示例是一个简化示例.但有些事情正在抛弃排序功能.结果很奇怪

carriersOne = ['St. Joseph\'s Medical Center | New York Health Care Insurance Company |    Some Other Company'];
carriersTwo = ['Advantage Care | Chicago Insurance Company | Hospital Insurance    Corporation'];

carriersOne = carriersOne[0].split('|');
carriersTwo = carriersTwo[0].split('|');

allCarriers = carriersOne.concat(carriersTwo);
allCarriers.sort();

count = allCarriers.length;

for(i=0;i<count;i++) {
alert(allCarriers[i]);
}
Run Code Online (Sandbox Code Playgroud)

你得到的是:

  Chicago Insurance Company
  Hospital Insurance Corporation
  New York Health Care Insurance Company
 Some Other Company
Advantage Care
St. Joseph's Medical Center
Run Code Online (Sandbox Code Playgroud)

wt-bleep命令是什么?注意:如果您使用单个名称或可预测的名字和姓氏,它会合并并排序.

javascript sorting

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

JQuery在保持DIV完整大小的同时向下滑动动画

当我使用Jquery向下滑动DIV时,div animatino看起来像是从顶部到底部拉伸/绘制div.

的jsfiddle

HTML

<body>
<div style="width:400px;background-color:black; height:50px">
    <div id="error" style="background-color:red; color:white; display:none; width:120px">the error message</div>
</div>
    <div id="button" style="margin-top:20px; background-color:gray; width:70px; cursor:pointer;">click me!</div>
</body>
Run Code Online (Sandbox Code Playgroud)

js(jquery-ui)

$(document).ready(function(){

    $("#button").click(function(){
      $('#error').slideDown('slow', function () {
            // Animation complete.
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

我希望动画看起来就像DIV从上到下滑动的全尺寸(当然是隐藏的一部分).

我正在添加一个图像,以便清除我想要实现的内容.

在此输入图像描述

是否可以通过更改一些CSS或Jquery参数来实现此目的.我知道JQuery id只是玩高度因为我的DIV底部有圆角而且它们只出现在动画的末尾.

jquery slidedown jquery-animate

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

在 JavaScript 中连接 `?:` 条件字符串

我在 JavaScript 中设置了一个断点,并在 Chrome 浏览器的控制台窗口中输入了以下表达式:

输入:

(((i % 12) == 0) ? '12' : (i % 12))
Run Code Online (Sandbox Code Playgroud)

结果:

9
Run Code Online (Sandbox Code Playgroud)

输入:

' ' + (i < 12) ? 'AM' : 'PM'
Run Code Online (Sandbox Code Playgroud)

结果:

"AM"
Run Code Online (Sandbox Code Playgroud)

输入:

(((i % 12) == 0) ? '12' : (i % 12)) + ' ' + (i < 12) ? 'AM' : 'PM'
Run Code Online (Sandbox Code Playgroud)

结果:

"AM"
Run Code Online (Sandbox Code Playgroud)

我的期望是最后的结果是“9AM”,这就是我想要的。这就是我输入的结果9 + "AM"。为什么它只给我“AM”?

我是在某个地方犯了一个愚蠢的错误,还是有什么超出了我对 JavaScript 内部工作原理的有限理解的地方?i只是一个for循环变量。

javascript

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

防止颜色数据的神秘字符串到数字的转换

HTML:

<form method="post" action="">
        <select name="fancySelect" class="makeMeFancy">
            <option value="0" selected="selected" data-skip="1">Email Color Scheme</option>
            <option value="81" data-color1="993300" data-color2="000000" data-html-text="Brown on Black">Brown on Black</option>
            <option value="77" data-color1="663366" data-color2="000000" data-html-text="Purple on Black">Purple on Black</option>
            <option value="129" data-color1="00ccff" data-color2="000000" data-html-text="Teal on Black">Teal on Black</option>
            <option value="75" data-color1="666666" data-color2="000000" data-html-text="Dark Gray on Black">Dark Gray on Black</option>
            <option value="85" data-color1="999999" data-color2="000000" data-html-text="Gray on Black">Gray on Black</option>
            <option value="81" data-color1="993300" data-color2="000000" data-html-text="Brown on Black">Brown on Black</option>
            <option value="77" data-color1="663366" data-color2="000000" data-html-text="Purple on Black">Purple on Black</option>
            <option value="129" …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery css3

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

如何为新的浏览器窗口指定几何形状(例如1280x720)?

Ubuntu Studio Linux 14.04.1 LTS

我想从 Linux shell 脚本启动一个精确大小的浏览器窗口,例如作为自动录制截屏视频的步骤。

我的第一个想法是使用 Xwindows-geometry设置,该设置曾经是 Xwindows 中所有应用程序所共有的,并保留在Gnome 选项中

#!/bin/bash -e
chromium-browser -geometry 1280x720 # ignores the spec
# firefox -geometry 1280x720 ignores the spec too
Run Code Online (Sandbox Code Playgroud)

我在 FreeBSD 论坛中找到了这篇文章,其中也说 Firefox 会忽略该-geometry设置。建议在启动时使用 Javascript,如下所示:

% firefox javascript:%20resizeTo\(1280,720\)
Run Code Online (Sandbox Code Playgroud)

在JS中调用window.resizeTo() 。测试了一下,也是不行。MDN 的链接页面指出,除了少数例外,这在 Firefox 7 后将不起作用。

@helloV 指出:从具有特定窗口坐标的命令行启动 Google Chrome

这是关于位置而不是大小。然而,深入研究后得出的这些想法也行不通

不:

chromium-browser --window-size=800,600
chromium-browser --window-size="800,600"
chromium-browser --window-size=800x600
chromium-browser -window-size=800,600
chromium-browser -window-size=800x600
Run Code Online (Sandbox Code Playgroud)

我们总是可以阅读Firefox 命令行选项页面(提示:窗口大小不存在)或Chrome 切换源代码,我们可以在其中找到 …

browser linux x11 shell

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