gpt4 book ai didi

javascript - 在javascript中使用for循环选择dom

转载 作者:行者123 更新时间:2023-11-30 12:58:37 24 4
gpt4 key购买 nike

令人沮丧的是,我们不能使用类似这样的代码来选择 JSON 元素(或实际上任何元素):

//An JSON object is parsed into Response beforehand
for(var count = 1; count <= Response.objCount; count ++) {
console.log(Response.obj+count.content);
}

在代码中,我想输出这样一个 JSON 对象:

{ "objCount" : 2 ,
"obj1" : { "result" : true ,
"content" : "blah blah 1" } ,
"obj2" : { "result" : true ,
"content" : "blah blah 2" } }

但是不,我们不能在 Javascript 中将变量用作标识符的全部或一部分。那么,当我想输出每个对象时,关于如何处理此类 JSON 对象有什么建议吗?

谢谢!

最佳答案

如果“Response”是你的结构,那么你确实可以按照你的要求去做:

for(var key in Response) {
console.log(Response[key].content);
}

您不能在“length”上循环,因为“Response”不是数组,而且普通对象没有“length”属性。

现在,一个问题是您无法确定您会以任何特定顺序取出组件。也就是说,上面的循环可能会在你得到“obj1”之前给你“obj2”。您可以通过几种方式解决该问题。首先,您可以重新考虑您的数据结构并将其存储为数组。或者,您可以获取键并对它们进行排序,然后循环访问已排序的属性名称数组。

var keys = Object.keys(Response);
keys.sort(function(key1, key2) {
// comparison ...
});
for (var count = 0; count < keys.length; ++count)
console.log(Response[keys[count]].content);

Object.keys() 函数仅适用于较新的浏览器,但您可以使用 for ... in 循环执行类似的技巧来提取属性名字。

编辑 — 更新后的结构包含您自己的显式长度属性,您可以使用普通的 for 循环:

for (var count = 1; count <= Response.objCount; ++count)
console.log(Response["obj" + count].content);

关于javascript - 在javascript中使用for循环选择dom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18172724/

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