小编Joe*_*Joe的帖子

为什么JavaScript中的[5,6,8,7] [1,2] = 8?

我无法绕过这个怪癖.

[1,2,3,4,5,6][1,2,3]; // 4
[1,2,3,4,5,6][1,2]; // 3
Run Code Online (Sandbox Code Playgroud)

我知道[1,2,3] + [1,2] = "1,2,31,2",但我找不到正在执行的类型或操作.

javascript

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

仅使用var在JavaScript中声明一个布尔值

如果我声明一个像这样的JavaScript布尔变量:

var IsLoggedIn;
Run Code Online (Sandbox Code Playgroud)

然后用或者初始化true或者1,是安全的呢?或者将1变量初始化为变量?

javascript boolean

88
推荐指数
5
解决办法
30万
查看次数

正则表达式删除最后一个/如果它作为字符串中的最后一个字符存在

我想要一个正则表达式或其他方法来删除字符串中的最后一个字符,当且仅当该字符是'/'时.我该怎么做?

javascript regex

22
推荐指数
2
解决办法
4万
查看次数

Lambda范围澄清

为什么我的参数x表现得如此不规律?

  1. 示例1 - 当前上下文中不存在.
  2. 示例2 - 无法重用,x因为它是在"子"范围内定义的.
  3. 例3 - 很好.这是我感到困惑的部分.也许是一个不同的"孩子"范围?

例1:

List<int> list = new List<int> { 1, 2, 3, 4, 5 };
var result = list.Where(x => x < 3);
Console.Write(result.ElementAt(x));
Run Code Online (Sandbox Code Playgroud)

创建此编译时错误:

当前上下文中不存在名称"x"

我期待的.

例2:

List<int> list = new List<int> { 1, 2, 3, 4, 5 };
var result = list.Where(x => x < 3);
int x = 1;
Console.Write(result.ElementAt(x));
Run Code Online (Sandbox Code Playgroud)

产生这个编译时错误:

名为'x'的局部变量不能在此范围内声明,因为它会给'x'赋予不同的含义,'x'已在'子'范围内用于表示其他内容

我理解在这个问题中回答的范围,C#在foreach中重用变量是否有原因?.然而,这是我以前从未见过的.另外,它回答了这个问题,C#中lambda变量的范围是什么?,不完整或错误.

例3:

List<int> list = new …
Run Code Online (Sandbox Code Playgroud)

.net c# lambda scope c#-4.0

22
推荐指数
2
解决办法
3958
查看次数

Linq要返回字符串

我不确定为什么以下内容不会将Vend的值作为字符串返回.当我检查vend的值时,它说:System.Data.Objects.ObjectQuery``1[System.String]

     string vend = (from vnd in db.Vendors
             where vnd.VendorID == id
             select vnd.VendorName).ToString();
Run Code Online (Sandbox Code Playgroud)

当我查看vend的价值时,这不是我的预期

c# linq string

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

在进行事务处理时,消息未到达MSMQ

我在本地计算机上创建了一个私有MSMQ.我使用以下C#代码将消息发送到队列.当我将队列更改为事务时,消息未到达MSMQ.但是,Send方法中没有抛出异常.我需要做些什么改变才能让它发挥作用?

using System;
using System.Messaging;
using System.Data;

public partial class _Default : System.Web.UI.Page
{
    //Sharing violation resulted from queue being open already for exclusive receive.
    MessageQueue helpRequestQueue = new MessageQueue(@".\Private$\MyPrivateQueue", false);
    protected void Page_Load(object sender, EventArgs e)
    {   
        bool isTransactionalQueue = false;    
        if (!System.Messaging.MessageQueue.Exists(@".\Private$\MyPrivateQueue"))    
        {    
            System.Messaging.MessageQueue.Create(@".\Private$\MyPrivateQueue", isTransactionalQueue);    
        }    
        SendMessage();    
        GetAllMessages();    
    }


    private void SendMessage()    
    {    
        System.Messaging.Message theMessage = new System.Messaging.Message("TimeNow is "+DateTime.Now.ToString());

        theMessage.Label = "Lijo " + DateTime.Now.ToString();

        theMessage.Priority = System.Messaging.MessagePriority.Normal;

        helpRequestQueue.Send(theMessage);    

    }


    private void GetAllMessages()   
    {    
        DataTable messageTable = …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net msmq

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

为什么相同的RegExp表现不同?

可能重复:
Javascript RegExp的有趣测试
正则表达式测试无法在true和false之间做出决定(JavaScript)

问题的例子.在内联运行时,结果如我所料.但是当存储为变量时,它会跳过中间跨度元素.

// Inline RegExp
function getToggleClasses() {
  var toggler = [],
      elements = document.getElementsByTagName("*"),
      i=0,
      len = elements.length;

  for (i; i < len; i++) {
    if (/toggler/g.test(elements[i].className)) {
      toggler.push(elements[i]);
    }
  }

  document.getElementById('results').innerHTML += "<br />Inline: " + toggler.length;
}

// Variable
function getToggleClasses2() {
  var toggler = [],
      elements = document.getElementsByTagName("*"),
      tester = /toggler/g,
      i=0,
      len = elements.length;

  for (i; i < len; i++) {
    if (tester.test(elements[i].className)) {
      toggler.push(elements[i]);
    }
  }

  document.getElementById('results').innerHTML += "<br />Variable: …
Run Code Online (Sandbox Code Playgroud)

javascript regex

12
推荐指数
1
解决办法
329
查看次数

快速分组javascript数组

我有几千个字符串的数组

['7/21/2011', '7/21/2011', '7/21/2011', '7/20/2011', etc]
Run Code Online (Sandbox Code Playgroud)

我目前正在运行此代码以按字符串分组并获取最大组值:

var max = 0;
var group = {};
arr.map(function (value) {
  if (group[value]) {
    group[value]++;
  } else {
    group[value] = 1;
  }
  max = Math.max(max, group[value]);
});
Run Code Online (Sandbox Code Playgroud)

是否有任何改进使这段代码运行得更快?

编辑: 结果在:http://jsperf.com/javascript-array-grouping2

编辑编辑:该测试存在缺陷.迈克塞缪尔的代码是最快的.

6000个条目测试 - > http://jsperf.com/javascript-array-grouping2

10K条目测试 - > http://jsperf.com/javascript-array-grouping

javascript arrays

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

如何在字典中插入第一个元素?

我有一个字典结构,里面有多个键值对.

myDict.Add(key1, value1);
myDict.Add(key2, value2);
myDict.Add(key3, value3);
Run Code Online (Sandbox Code Playgroud)

我的字典用作某些控件的数据源.在控件的下拉列表中,我看到项目是这样的:

key1
key2
key3
Run Code Online (Sandbox Code Playgroud)

订单看起来与我的字典相同.我知道Dictionary不像arrayList - 你可以得到索引左右.我不能使用sortedDictionary.现在我需要在我的程序的某个点为这个字典添加一个键值对,我希望它与我这样做有同样的效果:

myDict.Add(newKey, newValue);
myDict.Add(key1, value1);
myDict.Add(key2, value2);
myDict.Add(key3, value3);
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我知道newKey将作为第一个元素显示在我的控件中.

我有一个想法是创建一个tempDict,将myDict中的每一对放入tempDict,然后清除myDict,然后像这样添加对:

myDict.Add(newKey, newValue);
myDict.Add(key1, value1);
myDict.Add(key2, value2);
myDict.Add(key3, value3);
Run Code Online (Sandbox Code Playgroud)

还有比这更好的方法吗?

谢谢!

.net c# dictionary

10
推荐指数
2
解决办法
2万
查看次数

如何获取克隆元素的HTML

我有一个输入元素,如: <input class="input-m" name="formelement[]" type="text">

我想克隆它并将克隆的html存储到变量:

var txt=jQuery("input[name="+n+"[]]:first").clone().html();
Run Code Online (Sandbox Code Playgroud)

这会返回一个空字符串.

我如何从中获取html内容.clone()

jquery clone

9
推荐指数
1
解决办法
8957
查看次数

标签 统计

javascript ×5

c# ×4

.net ×3

regex ×2

arrays ×1

asp.net ×1

boolean ×1

c#-4.0 ×1

clone ×1

dictionary ×1

jquery ×1

lambda ×1

linq ×1

msmq ×1

scope ×1

string ×1