所以我目前遇到的问题是字符串操作逻辑问题。我的目标是将 JSON 对象的名称存储在字符串数组中。所以以后访问数据会更容易。但是我遇到的当前问题是输出不是我想要的或不了解它是如何获得的。目前我正在寻找对象名称之间的引号,并使用 str.substring 将其返回到字符串,并将其存储在 newArr 的索引中。输出等于第 4 个代码片段。我还尝试在 JSON 对象中的对象名称前后放置一个下划线,然后搜索下划线。从我的测试来看,这只适用于名字,它将在索引 0 中返回“foo”,而其余的索引等于 '"_'。我知道我的函数逻辑有问题,但我无法确定它是什么。任何帮助,将不胜感激
这是正在运行的功能。
exports.jsonObjectToArray = function (objectToTurn){
var oldArr = JSON.stringify(objectToTurn).split(","),
firstIndex,
secondIndex,
newArr = [];
for(let i = 0; i < oldArr.length; i ++){
firstIndex = oldArr[i].indexOf("\"");
secondIndex = oldArr[i].indexOf(firstIndex, "\"");
newArr[i] = oldArr[i].substring(firstIndex, secondIndex);
}
return newArr;
}
当函数运行时 oldArr 将等于这个值。
[ '{"foo":"',
'"bar":"0"',
'"Mar":"0"',
'"Car":"0"}'
]
而我的目标是回报这个。这将存储在 newArr 中。
[
"foo",
"bar",
"Mar",
"Car"
]
但是在函数运行后,这就是我得到的返回值。
[
'{"',
'bar":"0',
'Mar":"0',
'Car":"0'
]
要从对象中获取键,只需使用Object.keys()。
快速示例:
var obj = {
foo: '1',
bar: '2',
car: '3'
};
console.log(Object.keys(obj)); // ==> (3) ["foo", "bar", "car"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句