小编198*_*983的帖子

如何使用vim,sed或其他类似工具在大文件(100万行)中连接成对的连续行?

我需要将每个第二行的内容移动到上面的行,这样line2的数据就在line1的旁边,逗号或空格分隔的工作.

输入:

line1
line2
line3
line4
Run Code Online (Sandbox Code Playgroud)

输出:

line1 line2
line3 line4
Run Code Online (Sandbox Code Playgroud)

我一直用vim进行简单的录音,但是当我告诉它做了10万次时,vim似乎崩溃了...我想也许sed会是一个很好的选择,但不知道怎么做我想要的或者有更好的选择?

每行只包含1个数值,我只有一百万行......

vim text-processing sed large-files

15
推荐指数
5
解决办法
9431
查看次数

保持对每个用户的连接套接字的引用

我有一个(为了清楚起见)聊天.

用户可以登录,编写消息,其他人可以看到[name]:[message].

我不希望每次写入时都发送用户的名称和ID,socket.emit('say', message);因为这是多余的,所以我在服务器上做的是这样的:

var io = require("socket.io").listen(server),
    sockets = {};

io.sockets.on('connection', function (socket){
    socket.on('savePersonToSocket', function(user){
        socket.user = user;
        sockets[user.id] = socket;
    }
    socket.on('doSomething', doSomething);
});

// must be outside of 'connection' since I have TONS of these in a much more 
//complex structure and I don't want to create them all per user connection.
function doSomething(){
    ...
    sockets[userID].emit('foo'); // how to get the userID at this point?
    ...
}
Run Code Online (Sandbox Code Playgroud)

那么,我如何在那时获得userID?

笔记:

  • 对于登录并与其Facebook帐户连接的每个用户,客户端将告诉服务器保存该人的姓名和ID.

我想用一个保存用户名和ID的cookie来做这件事,服务器会通过读取cookie知道它是哪个用户,但这有点难看:每次发送这些信息都是多余的.

我还可以劫持'on'函数(以某种方式)并添加将知道它是哪个用户的功能,因为所有'on'侦听器无论如何都必须驻留在'connection'侦听器中.

javascript node.js socket.io

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

如何抽出与模式匹配的文本?

我正在尝试对搜索模式执行操作,但我无法弄清楚如何执行此操作.这里的目标是能够拉出一个模式,但到目前为止我只能拉一整行.是否有一个技巧可以使此命令仅在匹配的模式上运行?

:/pattern.*/v
Run Code Online (Sandbox Code Playgroud)

vim

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

根据值过滤对象数组

有没有办法按可能在任何属性中的特定值过滤对象数组?

假设我有这个对象:

var x = [
    {
        name: "one",
        swp: "two"
    },
    {
        name: "two",
        swp: "three"
    },
    {
        name: "aa",
        swp: "bb"
    }
];
Run Code Online (Sandbox Code Playgroud)

随着Array.prototype.filter我可以做

x.filter(function(y){ return y.name == "two"; });
Run Code Online (Sandbox Code Playgroud)

但是,这将只返回两个对象中的一个,这两个对象在其任何属性中都具有"两个"值.

function findValue( value ) {
  var y = [];
  for (obj in x) {
    for (val in x[obj]) {
      if (x[obj][val].match( value )) {
        y.push(x[obj]);
      }
    }
  }
  return y;
}
Run Code Online (Sandbox Code Playgroud)

做的工作,但是一种蛮力的方法.有没有更好的方法来实现相同的结果?

javascript arrays object

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

数组产品除自我Javascript

我一直在尝试Array Except Self的实现产品.我最初的想法是使用indexes === array[j]continue,但它不起作用.有谁能解释为什么?

 var array = [1,2,3,4];
    function productOfArrayExceptSelf(array){
     var result = 0;
     var resultArray = []; 
     var indexes;
    for(var i = 0; i < array.length; i++){
      for(var j = 0; j < array.length; j++){
         indexes = array[j];
         if(indexes === array[j]){
            continue;
         }
      }
    }
    return result;
    }
Run Code Online (Sandbox Code Playgroud)

javascript algorithm

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