假设我有一个最大的32位整数-
const a =
((2 ** 32) - 1)
const b =
parseInt("11111111111111111111111111111111", 2) // 32 bits, each is a one!
console.log(a === b) // true
console.log(a.toString(2))
// 11111111111111111111111111111111 (32 ones)
console.log(b.toString(2))
// 11111111111111111111111111111111 (32 ones)Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。但是,现在让我们说我想使用八(8)个4位数字制作一个32位数字。这个想法很简单:将<<每个4位序列移()到位置,然后将+它们相加()-
const make = ([ bit, ...more ], e = 0) =>
bit === undefined
? 0
: (bit << e) + make (more, e + 4)
const print = n =>
console.log(n.toString(2))
// 4 bits
print(make([ 15 ])) // …Run Code Online (Sandbox Code Playgroud)在我的CouchDB reduce函数中,我需要将项目列表减少到唯一的项目.
注意:在这种情况下,可以有一个列表,它将是少量的字符串类型的项目.
我目前的方法是设置一个对象的键,然后返回该对象的键,因为代码不能使用这样的地方_.uniq.
我想找一个更优雅的拼写方法.
function(keys, values, rereduce) {
// values is a Array of Arrays
values = Array.concat.apply(null, values);
var uniq = {};
values.forEach(function(item) { uniq[item] = true; });
return Object.keys(uniq);
}
Run Code Online (Sandbox Code Playgroud) 我在使用browserify时遇到了一些麻烦.
我正在尝试用Backbone构建基本的TodoMVC单页应用程序,而不是<script>在我的标签堆中index.html,我试图用browserify捆绑它们.
这是我到目前为止所做的事情.
LIB /模型/ todo.js
var backbone = require("backbone");
var Todo = module.exports = backbone.Model.extend({
defaults: function() {
return {
title: "",
completed: false,
createdAt: Date.now(),
};
},
});
Run Code Online (Sandbox Code Playgroud)
LIB /收藏/ todo.js
var backbone = require("backbone"),
LocalStorage = require("backbone.localstorage");
var TodoCollection = module.exports = backbone.Collection.extend({
localStorage: new LocalStorage('todomvc'),
});
Run Code Online (Sandbox Code Playgroud)
LIB/app.js
var Todo = require("./models/todo"),
TodoCollection = require("./collections/todo");
(function(global) {
global.todoCollection = new TodoCollection([], {model: Todo});
})(window);
Run Code Online (Sandbox Code Playgroud)
要构建我的包,我正在使用
browserify lib/app.js > js/app.js
Run Code Online (Sandbox Code Playgroud)
最后,我index.html很简单 …
这是一个简单的JavaScript生成器(来自:http://blog.carbonfive.com/2013/12/01/hanging-up-on-callbacks-generators-in-ecmascript-6/)
function* powGenerator() {
var result = Math.pow(yield "a", yield "b");
return result;
}
var g = powGenerator();
console.log(g.next().value); // "a", from the first yield
console.log(g.next(10).value); // "b", from the second
console.log(g.next(2).value); // 100, the result
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用类似于PHP的模型,但这有点令人头疼.
<?php
function powGenerator() {
return pow((yield 'a'), (yield 'b'));
}
Run Code Online (Sandbox Code Playgroud)
在我走得更远之前,我在PHP中遇到了这个错误
致命错误:生成器无法使用"返回"返回值
好吧,也许我会用另一个产量来获得最终价值?...
<?php
function powGenerator() {
yield pow((yield 'a'), (yield 'b'));
}
$g = powGenerator(); //=> Generator {#180}
echo $g->send(10); //=> "b"
echo $g->send(2); //=> 100
Run Code Online (Sandbox Code Playgroud)
好的,所以我恢复了价值,但这里有两个主要问题
我 …
如果我有这样的事情
const RandomComponent = (props) => (
<div>
<SomeSubComponent id={props.id} />
<AnotherSubComponent type={props.type} />
</div>
)
Run Code Online (Sandbox Code Playgroud)
我将如何用Flow键入注释返回类型,即/* ??? */在下面的代码中应该替换什么?
const RandomComponent = (props: { id: string, vino: number): /* ??? */ => (
<div>
<SomeSubComponent id={props.id} />
<AnotherSubComponent veryImportantNumber={props.vino} />
</div>
)
Run Code Online (Sandbox Code Playgroud)
编辑:这就是Flow文档对无状态功能组件的看法.我可能是盲人,但我看不到有关返回类型的任何内容,只有道具类型.
考虑以下
var a = {foo: "bar"};
Run Code Online (Sandbox Code Playgroud)
相当于
var a = {};
a.foo = "bar";
Run Code Online (Sandbox Code Playgroud)
相当于
var a = {};
a['foo'] = "bar";
Run Code Online (Sandbox Code Playgroud)
相当于
var a = {}
var b = "foo";
a[b] = "bar";
Run Code Online (Sandbox Code Playgroud)
var b = "foo";
var a = { [b]: "bar" };
Run Code Online (Sandbox Code Playgroud)
这样的结果就是
// => {foo: "bar"}
Run Code Online (Sandbox Code Playgroud)
可接受的解决方案是JavaScript或CoffeeScript
JavaScript欢乐时光乐趣的土地
// make a method
var happy = function(a, b, c) {
console.log(a, b, c);
};
// store method to variable
var b = happy;
// bind a context and some arguments
b.bind(happy, 1, 2, 3);
// call the method without additional arguments
b();
Run Code Online (Sandbox Code Playgroud)
输出.好极了!
1 2 3
Run Code Online (Sandbox Code Playgroud)
在Ruby中
# make a method
def sad a, b, c
puts a, b, c
end
# store method to variable
b = method(:sad)
# i need some way to bind args now …Run Code Online (Sandbox Code Playgroud) import {flow, curry} from 'lodash';
const add = (a, b) => a + b;
const square = n => n * n;
const tap = curry((interceptor, n) => {
interceptor(n);
return n;
});
const trace2 = curry((message, n) => {
return tap((n) => console.log(`${message} is ${n}`), n);
});
const trace = label => {
return tap(x => console.log(`== ${ label }: ${ x }`));
};
const addSquare = flow([add, trace('after add'), square]);
console.log(addSquare(3, 1));
Run Code Online (Sandbox Code Playgroud)
我开始写跟踪2认为跟踪不起作用,因为"如何挖掘可能知道n或x什么?".
但跟踪确实有效,我不明白它如何能够"注入"来自流量的x进入点击呼叫.任何解释将不胜感激:)
我试过这个,它运行正常
<p alt="world">hello</p>
Run Code Online (Sandbox Code Playgroud)
用CSS
p::after {
content: attr(alt);
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试时它不起作用
<img src="http://placehold.it/300x300" alt="my image caption">
Run Code Online (Sandbox Code Playgroud)
用CSS
img::after {
content: attr(alt);
}
Run Code Online (Sandbox Code Playgroud)
是否可以为img使用CSS 输出替代文字?
请指出浏览器与您提供的任何解决方案兼容.
更新:
我实际上发布了这个包,所以你可以自己看问题.
在这里查看naomik/yamldump
我正在尝试制作一个小型CLI工具并将其与作曲家打包在一起.
下面是该程序的一个非常简化的版本,但它足以证明我遇到的问题.
该项目有一个依赖项和一个"二进制"文件
composer.json
{
"name": "naomik/yamldump",
"version": "0.2.0",
"bin": [
"bin/yamldump"
],
"require": {
"symfony/yaml": "2.5.3"
}
}
Run Code Online (Sandbox Code Playgroud)
斌/ yamldump
#!/usr/bin/env php
<?php
// use Yaml namespace
use Symfony\Component\Yaml as Yaml;
// autoload
require_once "vendor/autoload.php";
// read yaml
$yaml = file_get_contents(sprintf("%s/%s", getcwd(), $argv[1]));
// create parser
$parser = new Yaml\Parser();
// parse the yaml
var_dump($parser->parse($yaml));
Run Code Online (Sandbox Code Playgroud)
所以当我在全球范围内安装它时,我得到了这个
$ composer global require naomik/yamldump=dev-master
Run Code Online (Sandbox Code Playgroud)
文件已安装到
~/.composer/vendor/bin/yamldump -> ../naomik/yamldump/bin/yamldump~/.composer/vendor/naomik/yamldump/~/.composer/vendor/symfony/yaml/这是一个问题,因为我不打算全局安装symfony/yaml ,我的包vendor/autoload.php不能再在正确的位置找到Yaml包.
我不介意 …
javascript ×6
php ×2
arrays ×1
backbone.js ×1
browserify ×1
coffeescript ×1
composer-php ×1
couchdb ×1
css ×1
flowtype ×1
generator ×1
lodash ×1
node.js ×1
package ×1
packagist ×1
reactjs ×1
ruby ×1
typing ×1