所以我目前遇到的问题是字符串操作逻辑问题。我的目标是将JSON对象的名称存储在字符串数组中。因此,以后访问数据会更容易。但是我遇到的当前问题是输出是我想要或理解它是如何得到它的。目前我正在寻找对象名称之间的引号,并使用str.substring将其返回到字符串,并将其存储在newArr的索引中。输出等于第4个代码段。我还尝试在JSON对象中的对象名称之前和之后放置下划线,然后搜索下划线。从我的测试来看,这只能使用第一个名字,它将返回" foo"在索引0中,而其余索引等于'" _'。我知道我的逻辑在函数中有问题,但我无法确定它是什么。任何帮助将不胜感激
这是正在运行的功能。
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'
]
答案 0 :(得分:0)
要从对象获取密钥,只需使用Object.keys()。
快速举例:
var obj = {
foo: '1',
bar: '2',
car: '3'
};
console.log(Object.keys(obj)); // ==> (3) ["foo", "bar", "car"]
答案 1 :(得分:0)
让arr = [&#39; {&#34; foo&#34;:&#34;&#39;, &#39;&#34;杆&#34;:&#34; 0&#34;&#39 ;, &#39;&#34;三月&#34;:&#34; 0&#34;&#39 ;, &#39;&#34;车载&#34;:&#34; 0&#34;}&#39; ]
让arr1 = arr.map(el =&gt; el.split(&#39;&#34;&#39;)[1])