TECHTOGOU

javascript - console.log(array) 显示与迭代数组和显示单个元素不同的数组内容

coder 2024-05-16 原文

我有以下代码:

console.log("start");
for(var i = 0; i < array.length; i++){
    console.log(i + " = " + array[i]);
}
console.log(array);
console.log("end");

这给了我以下输出:

[16:34:41.171] start
[16:34:41.171] 0 = 0
[16:34:41.172] 1 = 168
[16:34:41.172] 2 = 171
[16:34:41.172] [0, 168, 171, 139]
[16:34:41.172] end

也就是说,它在迭代数组时不显示 139 元素,但在输出整个数组时 console.log 确实打印了它。为什么? (<-->

我稍后会修改数组,console.log 是否以某种方式延迟到我更改数组之后?请注意,改变语句的顺序,将 consoel.log(array) 直接放在开头不会改变结果(仍然是不同的输出)。

我使用的是 firefox 20.0

最佳答案

更新:如果您想看到此行为,请复制并粘贴控制台中的代码并执行。然后关闭开发人员工具并再次打开,显然指针的事情只发生在代码在后台执行时(当您重新打开控制台时发生)。

Console.log输出对象,是一个指针,没有真正的值。这意味着如果对象稍后更改,console.log 对象将被更新。尝试:

console.log("start");
var array = [1];
for(var i = 0; i < array.length; i++){
    console.log(i + " = " + array[i]);
}
console.log(array);
console.log("end");
array.push(9999);// you will see the 9999 in the console no matter it was added after the output.

为了防止指针问题,试试这个: console.log(array.join());因为稍后在您的应用程序的某个时刻您要添加 139 值。

关于javascript - console.log(array) 显示与迭代数组和显示单个元素不同的数组内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16484838/

有关javascript - console.log(array) 显示与迭代数组和显示单个元素不同的数组内容的更多相关文章

  1. c# - Join List<string> 连同最后一个元素的逗号加 "and" - 2

    我知道我可以找到出路,但我想知道是否有更简洁的解决方案。总是有String.Join(",",lList)和lList.Aggregate((a,b)=>a+","+b);但我想要为最后一个将"和"作为其连接字符串添加异常(exception)。Aggregate()是否有一些我可以使用的索引值?谢谢。 最佳答案 你可以这样做stringfinalString=String.Join(",",myList.ToArray(),0,myList.Count-1)+",and"+myList.LastOr

  2. c# - 如果找不到指定的图像文件,显示默认图像的最佳方式是什么? - 2

    我有普通的电子商务应用程序,我将ITEM_IMAGE_NAME存储在数据库中,有时经理会拼错图像名称。为了避免“丢失图像”(IE中的红色X),每次我显示产品列表时,我都会检查服务器以查找与产品相关的图像,如果该文件不存在-我将其替换为默认图片。据我所知,这不会影响性能,但我想知道是否有任何替代方法可以解决“丢失图像”问题。我正在使用ASP.NET+C#(.NET3.5)部分代码:foreach(ItemiteminItems){stringpath=Path.Combine("~/images/",item.categoryImage);item.categoryIma

  3. c# - 用于将字节数组转换为字符串的编码,反之亦然 - 2

    我使用此代码来加密字符串(基本上,这是RijndaelclassonMSDN上给出的示例):publicstaticStringAESEncrypt(Stringstr2Encrypt,Byte[]encryptionKey,Byte[]IV){Byte[]encryptedText;using(RijndaelManagedrijAlg=newRijndaelManaged()){//UsetheprovidedkeyandIVrijAlg.Key=encryptionKey;rijAlg.IV=IV;//Createadecrytortoperformthestreamtransf

  4. c# - 为枚举元素分配多个值 - 2

    嗨,我目前有这个枚举[Serializable]publicenumCountry{US=1,Canada=2,}当我通常从数据库中获取整数时,我会使用将其转换为枚举(Country)Convert.ToInt32("1")我现在在美国和加拿大有2个子区域,美国1和2,加拿大3和4。所以当我这样做的时候(Country)Convert.ToInt32("1")或(Country)Convert.ToInt32("2")我应该让枚举成为美国。以及3和4加拿大。我该如何实现?[Serializable]publicenumCountry{US=1,2Canada=3,4}是

  5. c# - 将一个值与整个数组进行比较? (C#) - 2

    假设我有一个C#变量和数组:intvariable_1=1;int[3]array_1={1,2,3};如何在不遍历array_1的情况下检查variable_1的值是否等于array_1中的任何值? 最佳答案 嗯,有些东西必须循环。以下任何一项都有效:boolexists=array.Contains(variable_1);boolexists=Array.IndexOf(array_1,variable_1)!=-1;boolexists=Array.Exists(array_1,x=>x==variable_1);bo

  6. c# - 如何验证(特定国家/地区)电话号码 - 2

    一个有效的电话号码包含:少于9个字符以“+”开头只有数字。我正在尝试使用正则表达式,但我才刚刚开始使用它们,而且我并不擅长。到目前为止我的代码是:staticvoidMain(string[]args){Console.WriteLine("Enteraphonenumber.");stringtelNo=Console.ReadLine();if(Regex.Match(telNo,@"^(\+[0-9])$").Success)Console.WriteLine("correctlyentered");elseConsole.Writ

  7. c# - 序列化同一个类中的多个 DateTime 属性,每个属性使用不同的格式 - 2

    我有一个具有两个DateTime属性的类。我需要用不同的格式序列化每个属性。我该怎么做?我试过:JsonConvert.SerializeObject(obj,Formatting.None,newIsoDateTimeConverter{DateTimeFormat="MM.dd.yyyy"});此解决方案对我不起作用,因为它将日期格式应用于所有属性。有没有办法用不同的格式序列化每个DateTime属性?也许有一些属性? 最佳答案 处理这种情况的一种直接方法是将IsoDateTimeConverter子类化,为您需

  8. c# - 如何摆脱选中的列表框选择突出显示效果? - 2

    当在选中的列表框中单击一个项目时,它会突出显示。我怎样才能防止这种突出效果?我可以连接到SelectedIndexChanged事件并清除选择,但突出显示仍然发生并且您会看到一个光点。事实上,如果您按住鼠标单击,在单击复选框区域后从未松开它,则所选内容会一直突出显示,直到您释放鼠标按钮。我基本上想完全摆脱这种突出显示效果。 最佳答案 使用以下内容:privatevoidcheckedListBox1__SelectedIndexChanged(objectsender,EventArgse){checkedListBox1.Clea

  9. c# - 将 linq 查询转换为字符串数组 - C# - 2

    将单列linq查询转换为字符串数组的最有效方法是什么?privatestring[]WordList(){DataContextdb=newDataContext();varlist=fromxindb.Wordsorderbyx.Wordascendingselectnew{x.Word};//returnstringarrayhere}注意-x.Word是一个字符串 最佳答案 我更喜欢lambda风格,你真的应该处理你的数据上下文。privatestring[]WordList(){using(DataContextdb=new

  10. c# - 什么构成了应用程序控制台或 Windows 窗体应用程序? - 2

    [VisualStudio2008]我为控制台应用程序创建了一个新项目并将其修改为如下所示:classProgram{staticvoidMain(string[]args){Thread.Sleep(2000);}}然后我为Windows窗体应用程序创建了另一个项目并修改了它:staticclassProgram{//[STAThread]commentedthislinestaticvoidMain(string[]args){//Addedargs//Commentedfollowinglines//Application.EnableVisualStyles();//Appli

随机推荐

  1. c# - 您如何用初学者语言描述观察者模式? - 2

    目前,我对观察者模式的理解程度低于网上所有的编码示例。我将其简单地理解为几乎是一个订阅,当委托(delegate)注册发生更改时,它会更新所有其他事件。但是,我对好处和用途的真正理解非常不稳定。我做了一些谷歌搜索,但大多数都超出了我的理解水平。我正在尝试用我当前的家庭作业来实现这个模式,要真正让我的项目有意义,需要更好地理解这个模式本身,或许还需要一个例子来了解它的用途。我不想将这种模式强加到只是为了提交的东西中,我需要了解目的并相应地开发我的方法,以便它真正达到一个好的目的。我的文字并没有真正进入它,只是一句话提到它。MSDN对我来说很难理解,因为我是这方面的初学者,而且它似乎更像是

  2. c# - 用于嵌入 C#/.NET 应用程序的脚本语言? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。[onlysimilarquestion我可以找到很久以前的答案,其中主要包含对IronPython的引用。我也想考虑其他选择]我们有一个用C#编写的复杂数据分析应用程序。该应用程序应该为用户提供一种复杂的方法来定制他们的数据分析任务。目前,我们混合使用配置文件和Excel表格来指定它,但它变得笨拙,所以我们正在寻找一种脚本语言来嵌入。用于C#/.NET嵌

  3. c# - 在 C# 中使用 SSE 是可能的吗? - 2

    我正在阅读有关c#代码优化的问题,一种解决方案是将c++与SSE结合使用。是否可以直接从C#程序执行SSE? 最佳答案 即将到来Mono2.2版本将支持SIMD。MigueldeIcaza在博客中介绍了即将推出的功能here,API是here.虽然会有一个库支持在Microsoft的.NETWindows运行时下进行开发,但除非您在Mono运行时下运行代码,否则它不会具有您正在寻找的性能优势。根据您的情况,这可能是可行的。更新:Mono2.2是released 关于c#-在C#中使用SS

  4. C# 版本的 __FUNCTION__ 宏 - 2

    有没有人对C#版本的C++__FUNCTION__宏有好的解决方案?编译器似乎不喜欢它。 最佳答案 尝试改用它。System.Reflection.MethodBase.GetCurrentMethod().NameC#没有像C++那样的__LINE__或__FUNCTION__宏,但是有等价物 关于C#版本的__FUNCTION__宏,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

  5. c# - 如何在 C# 中找到对象的所有公共(public)字段? - 2

    我正在构造一个方法来接收ArrayList(可能充满对象),然后列出ArrayList中每个对象的所有字段(及其值)。目前我的代码如下:publicstaticvoidListArrayListMembers(ArrayListlist){foreach(Objectobjinlist){Typetype=obj.GetType();stringfield=type.GetFields().ToString();Console.WriteLine(field);}}当然,我理解这段代码的直接问题:如果它有效,它只会为ArrayList中的每个对象打印一个字段。我稍后会解决这个问题-现在

  6. c# - 批量注册 IEntityTypeConfiguration<> Entity Framework 核心 - 2

    好的,所以我正在使用带有点网核心和代码优先迁移的EntityFramework。这本身不是问题,我只是想知道是否有人遇到过更好的方法。目前我有很多这样的实体类型配置publicclassExampleEntityConfiguration:IEntityTypeConfiguration<ExampleEntity>{publicvoidConfigure(EntityTypeBuilder<ExampleEntity>builder){builder.Property(p=>p.Id).ValueGeneratedNever();//moreoption

  7. c# - 在 ASP.NET Identity 2 中通过 UserManager.Update() 更新用户 - 2

    我在MVC5项目中使用ASP.NETIdentity2,我想使用UserManager更新Student数据。更新()方法。但是,由于我继承自ApplicationUser类,因此我需要在调用更新方法之前将Student映射到ApplicationUser。另一方面,当使用我也用于创建新Student的方法时,当我创建新实例而不是更新时,由于并发性而出现错误。由于我厌倦了使用AutoMapper来解决问题,因此我需要一个稳定的修复程序来解决没有AutoMapper的问题。你能告诉我如何解决这个问题吗?我将StudentViewModel传递给Controller中的Update方法,然

  8. c# - ApiController Post 中的异步和等待 - 2

    我对.net4.5中的async和await还不是很清楚。到目前为止,我想我明白await:将函数(在它的右边)放在一个单独的线程上。将执行返回给当前函数的调用者但在等待(异步)函数完成之前保留当前函数的其余代码“人质”。如果我误解了什么,请纠正我。因此,如果上述情况属实,我将无法使用我想要异步的ApiController的Post函数:[HttpPost]publicasyncTask<HttpResponseMessage>Post([FromBody]MyObjectobj){myDataContext.MyObjects.InsertOnSubmit(obj);my

  9. c# - 如何使用 ajax 调用将 formcollection 传递给一个 Action ? - 2

    我正在尝试用ajax调用替换表单提交。该操作需要formcollection,我不想创建新模型。所以我需要通过ajax调用传递整个表单(就像表单提交一样)。我尝试序列化并使用Json,但formcollection为空。这是我的Action签名:publicActionResultCompleteRegisteration(FormCollectionformCollection)这是我的提交按钮点击:varform=$("#onlineform").serialize();$.ajax({url:"/Register/CompleteRegisteration

  10. c# - 如何使用 C# 创建 appdata 文件夹 - 2

    很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。嗯,我不知道怎么打字,所以请耐心等待。这超出了我的范围,我仍然是C#的新手。我基本上需要在运行程序的当前用户的漫游应用程序数据中创建一个文件夹。我还需要访问应用程序数据部分中的另一个文件夹,然后用我创建的应用程序数据文件夹中的文件副本替换文件。