gpt4 book ai didi

javascript - 获取 TreeView 的 JSON 的第一个属性键

转载 作者:行者123 更新时间:2023-11-27 23:29:16 25 4
gpt4 key购买 nike

感谢您对前两个问题的回答。我有一个新面板,这是一个 jQuery 中的可折叠面板。这个概念是,JSON 对象的 first 键将显示为按钮,其他键将被视为常规文本,如 <p>等等。

我有这个函数来测试对象的第一个索引。

function isFirstIndex(obj){
var key;
for(key in obj){
if(obj[key]===0){
return true;
}
}
return false;
}

我已经尝试过这个:

function generateTree(data, selId){
var cnt = "";
for (var i=0; i<5; i++){
var row = data[i];
$.each(row, function(key,value){
if (isFirstIndex(row)){
cnt += "<button>" + value + "</button><br/>";
} else{
cnt += "<strong>" + key + "</strong> :" + value + "<br/>";
}

});
cnt += "<br/>";
}

$(selId).html(cnt);
}

但最终在调试中发现keyisFirstIndex函数与字符串进行比较。假设我有一个 JSON :

{"userId" : 1, "name" : "cool name"}

我想将任何 JSON 设置的第一个键显示为按钮,并且以下属性将是普通文本。请允许我发布一个pseudo-code类似的过程。

Loop through all elements of data response
Loop through each key and value of each data element.
If the key is the first occurrence within the data set
display it as a button.
else
display it as ordinary text.
End Inner Loop
End outer loop

最佳答案

UtsavShah 的意思是 for (key in obj) 可以以任意顺序迭代 obj 中的 keys,JS 规范不强制执行任何顺序订单。

事实上,JS 规范不仅对迭代不强制执行任何顺序,而且对内部存储也没有强制执行任何顺序:每个 JS 引擎实现(因此取决于浏览器)可以按任何顺序存储您的 JSON 键,因此,即使您首先写入“userId”这并不意味着浏览器会将其保留为第一个键。为此,您必须使用数组,或使用具有特定键的约定。

按照代码的编写方式,它将在对象(行)中查找名为“0”的键。顺便说一句,您的 i 迭代器在 isFirstIndex 函数中毫无用处。

您可能尝试实现的是测试分配给“userId”键的值是否等于0?在这种情况下,您只需测试 if (obj["userId"] === 0)

<小时/>

编辑:(在您解释 userId 是一个按钮之后)

如果您只想将键“userId”中的值显示为按钮,您只需执行以下操作:

function generateTree(data, selId){
var cnt = "";
for (var i=0; i<5; i++){
var row = data[i];
$.each(row, function (key,value) { // Note that $.each does not necessarily iterates in any specific order either.
if (key === "userId"){
cnt += "<button>" + value + "</button><br/>";
} else{
cnt += "<strong>" + key + "</strong> :" + value + "<br/>";
}

});
cnt += "<br/>";
}

$(selId).html(cnt);
}
<小时/>

编辑2:

如果你想要一个订单,你需要一个数组。如果你想要有序的键,你可以像这样塑造你的数据(当然这必须在服务器和客户端中实现):

[
{"userId": 1},
{"name": "cool name"}
]

如果您只需要知道哪个特定键是特定的并且应该设置为按钮,请与您的服务器制定约定并让您的数据指定哪个是特定键,例如:

{
"userId": 1,
"name": "cool name",
"specificKeyToBeTransformedIntoAButton": "userId"
}

关于javascript - 获取 TreeView 的 JSON 的第一个属性键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34713933/

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