我需要将每个第二行的内容移动到上面的行,这样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个数值,我只有一百万行......
我有一个(为了清楚起见)聊天.
用户可以登录,编写消息,其他人可以看到[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?
笔记:
我想用一个保存用户名和ID的cookie来做这件事,服务器会通过读取cookie知道它是哪个用户,但这有点难看:每次发送这些信息都是多余的.
我还可以劫持'on'函数(以某种方式)并添加将知道它是哪个用户的功能,因为所有'on'侦听器无论如何都必须驻留在'connection'侦听器中.
我正在尝试对搜索模式执行操作,但我无法弄清楚如何执行此操作.这里的目标是能够拉出一个模式,但到目前为止我只能拉一整行.是否有一个技巧可以使此命令仅在匹配的模式上运行?
:/pattern.*/v
Run Code Online (Sandbox Code Playgroud) 有没有办法按可能在任何属性中的特定值过滤对象数组?
假设我有这个对象:
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)
做的工作,但是一种蛮力的方法.有没有更好的方法来实现相同的结果?
我一直在尝试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 ×3
vim ×2
algorithm ×1
arrays ×1
large-files ×1
node.js ×1
object ×1
sed ×1
socket.io ×1