小编Ola*_*son的帖子

优雅地确定多个布尔值是否为"true"

我有一组五个布尔值.如果其中不止一个是真的,我想要执行特定的功能.您能想到的最优雅的方法是什么,这样我才能在单个if()语句中检查这种情况?目标语言是C#,但我也对其他语言的解决方案感兴趣(只要我们不讨论特定的内置函数).

一个有趣的选择是将布尔值存储在一个字节中,进行右移并与原始字节进行比较.类似if(myByte && (myByte >> 1))但是这需要将单独的布尔值转换为一个字节(通过bitArray?),这似乎有点(双关语)笨拙... [编辑]对不起,应该是 if(myByte & (myByte - 1)) [/ edit]

注意:这当然非常接近经典的"人口数量","横向增加"或"汉明重量"编程问题 - 但不完全相同.我不需要知道有多少位被设置,只要它不止一个.我希望有一种更简单的方法来实现这一目标.

c# hammingweight

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

无序列表和可访问性

许多(大多数?)旨在实现可访问性和标准合规性的站点使用无序列表进行导航.这是否使网站更易于访问,还是仅提供有用的样式元素?

我不介意他们,我一直在以这种方式使用无序列表.就是这样,当我从页面中删除样式以试图衡量它的可访问性时,它让我觉得它也可以是简单的链接.这是从哪里来的?

html css accessibility web-standards

5
推荐指数
3
解决办法
2730
查看次数

删除模块目录后无法再安装 npm

所以我想提供帮助,并创建一个 Node-RED 模块来做一些小的贡献,但随后我迷失了如何让 Node-RED 运行我的 fork(用于测试)而不是打包版本。然后我了解了 npm 从 Github URL 安装的能力,这很好,但它不起作用,因为我已经安装了该模块。然后我发现我也无法卸载它

npm uninstall original-module
npm ERR! path /home/nodered/.node-red/node_modules/original-module/package.json
npm ERR! code ELOOP
npm ERR! errno -40
npm ERR! syscall open
npm ERR! ELOOP: too many symbolic links encountered, open '/home/nodered/.node-red/node_modules/original-module/package.json'
Run Code Online (Sandbox Code Playgroud)

所以我很沮丧地删除了模块的目录,却发现自己无法前进或后退。npm install https://github.com/me/forkedmodule失败

npm ERR! code 128
npm ERR! Command failed: /usr/bin/git clone --depth=1 -q -b master https://github.com/me/forkedmodule.git /root/.npm/_cacache/tmp/git-clone-d31dc53b
npm ERR! fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-d31dc53b': Permission denied
npm ERR! 

npm ERR! A complete log …
Run Code Online (Sandbox Code Playgroud)

node.js npm node-red

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

表行排序和字符串性能

我有一个包含大量行的表,不适合分页.可以通过单击列标题对此表中的行进行排序,该列标题基于http://www.exforsys.com/tutorials/jquery/jquery-basic-alphabetical-sorting.html触发客户端排序算法.该函数动态添加"expando"属性到每一行,从而缓存密钥预排序:

row.sortKey = $(row).children('td').eq(column).text().toUpperCase();
Run Code Online (Sandbox Code Playgroud)

如您所见,属性值只是设置为单击列的内容,并在排序完成后被丢弃(为空).性能实际上非常好 - 但包含更多文本的列似乎更慢排序.

由于排序只是为了让用户更容易找到他们正在寻找的行,我想通过使用substr(0,7)或其他东西(八个字符)来裁剪关键值可以加快速度.提供足够的精度).但是,我发现执行substr()会导致比保存更多的性能成本,如果有的话,它会使排序变慢.

有谁知道可以应用于此方法的任何(其他)优化?

这是一个更完整的例子:

var rows = $table.find('tbody > tr').get();
$.each(rows, function(index, row) {
    row.sortKey = $(row).children('td').eq(column).text().toUpperCase()
})
rows.sort(function(a, b) {
    if (a.sortKey < b.sortKey) return -1
    if (a.sortKey > b.sortKey) return 1
    return 0
})
$.each(rows, function(index, row) {
    $table.children('tbody').append(row)
    row.sortKey = null
})
Run Code Online (Sandbox Code Playgroud)

编辑:这是我的代码的最终版本,包含以下答案中提供的许多优化:

$('table.sortable').each(function() {
    var $table = $(this);
    var storage = new Array();
    var rows = $table.find('tbody > tr').get();
    $('th', $table).each(function(column) {
        $(this).click(function() {
            var colIndex …
Run Code Online (Sandbox Code Playgroud)

javascript string performance jquery

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

Rails 3:如何在数据库表中的行中的<select>标记中创建选项?

给出以下形式:

<%= form_for(@ciudad) do |f| %>
  <% if @ciudad.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@ciudad.errors.count, "error") %> prohibited this ciudad from being saved:</h2>

      <ul>
        <% @ciudad.errors.full_messages.each do |msg| %>
          <li><%= msg %></li>
        <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :nombre %><br />
    <%= f.text_field :nombre %>
  </div>

  <div class="field">
    <%= f.label :departamento_id %><br />
    <%= f.select :departamento_id , :prompt => "Seleccione el municipio" %>
  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

如何deparamento_id …

forms ruby-on-rails ruby-on-rails-3

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