gpt4 book ai didi

asp.net - 令人费解的 javascript 数组行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:06 25 4
gpt4 key购买 nike

所以,这可能是一个非常愚蠢的问题,但我显然在这里遗漏了一些东西。

考虑以下代码:

    var selectedItems = [];
selectedItems.push("0ce49e98-a8aa-46ad-bc25-3a49d475e9d3");
//fyi, selectedItems[selectedItems.length] = "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3"; produced the same result.

最后 selectedItems 内容如下所示:

Name              Value                                    Type
------------- -------------------------------------- ------
selectedItems {...} Object
- [0] "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3" String
- length 1 Long

但是如果我只是尝试在同一个字符串上调用 split(),就像这样:

selectedItems = "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3".split(",")

现在我假设的数组的内容如下所示(缺少长度):

Name              Value                                    Type
------------- -------------------------------------- ------
selectedItems {...} Object
- [0] "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3" String

知道有什么区别吗?这里到底发生了什么?
提前致谢。

更新:我有一种感觉,这两个结果值实际上在结构上有所不同,因为当我尝试将它传递给服务器端 WebMethod 时,(atlas) ajax 在具有 length 属性的那个上阻塞(没有实际的错误消息,但我知道调用失败)。我不确定。

更新#2我注意到以这种方式设置 targetLocationIdList 会导致“快速监视”窗口中不显示“长度”属性:

  var params = 
{
jobId : args.get_JobId(),
targetLocationIdList : retVal.split(',')
};

但是这个结果包含在快速观察窗口中显示的“长度”属性:

  var retValArr = [];
retValArr = retVal.split(',');

var params =
{
jobId : args.get_JobId(),
targetLocationIdList : retValArr
};

最佳答案

在编程方面完全没有区别。如果你在 chrome 开发者窗口和 Firebug 中运行你的例子,它看起来像第二个

 Name              Value               
Type
------------- -------------------------------------- ------
selectedItems {...} Object
- [0] "0ce49e98-a8aa-46ad-bc25-3a49d475e9d3" String

长度是隐含的属性

编辑

var retVal = 'test';
var params =
{
jobId : 1,
targetLocationIdList : retVal.split(',')
};
console.log(params.targetLocationIdList.length) // prints 1

上面的代码在 IE8、Firefox、Chrome(在他们的开发工具或 Firebug 中)中打印 1,因此认为这一定是 Visual Studio 或 Atlas 显示对象的方式的问题。

关于asp.net - 令人费解的 javascript 数组行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1206788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com