【发布时间】:2019-11-29 23:02:24
【问题描述】:
我正在使用嵌套的 For 循环来访问 json 中的数据,然后返回一个变量以在前端使用 Vue 进行访问。我不知道为什么,但我只返回嵌套数组的第一个元素的值?希望有人可以帮助解决这个问题。这似乎没有意义。
***总是只有一份工作,这就是为什么我只循环通过工作[0]。
我试过forEach,For of,For,我试过map(不知道如何正确实现)。
所以,这行得通,我可以使用 Vue 返回密钥。请注意,这是一个示例,正在正确访问 json 并且需要将“数据”传递给函数。
function getData(Data) {
var jobs = Jobs;
var i;
for (i = 0; i < jobs.length; i++) {
return items;
}
}
try {
Data.values = getData(Data);
}
catch (e) {
logError(e);
}
这是 Vue:
<div v-for="value in values">{{ value.Key }}</div>
这不起作用,我不知道为什么?
function getData(Data) {
var jobs = Jobs;
var i;
for (i = 0; i < jobs.length; i++) {
var items = jobs[0].Items;
for (i = 0; i < items.length; i++) {
return items[i].Values;
}
}
}
try {
Data.values = getData(Data);
}
catch (e) {
logError(e);
}
这是 Vue:
<div v-for="value in values">{{ value.Key }}</div>
如您所见,我刚刚在数组中进一步深入一层。但是,我在前端返回的只是第一项的密钥。例如,我可以使用 return items[2].Values 指定我想要访问的项目,所以我知道我可以访问它们,但我无法获得所有的值。 json 格式正确,我已经使用了这样的 For 循环一百万次,没有 Vue(我对 Vue 比较新)来访问数据。请在给我一个方法、组件或 Vue 特定的东西之前,了解我必须在一个单独的 js 文件中使用这样的函数来返回我将在前端访问的值。这是一个奇怪的设置,但它就是这样。我总体上有点迷茫,但如果我能解决这个问题,那将会有很长的路要走,因为现在我将使用第一个示例,然后做这样的事情(再次只是一个示例):
<template v-for="item in items">
<div v-for="value in values">{{ thing.Key }}</div>
</template>
这对于简单的东西来说很好,但我越深入 json 就会遇到一些问题。我正在访问的一些值是 5 级和 6 级深,并且有 if 语句,我需要对一些值进行数学运算以 terun 字符串和计算其他项目,并且有些项目是对象,而其他项目在同一级别的 json 是数组。这是一团糟,能够在 for 语句中对其进行整理将非常有帮助。
非常感谢所有帮助。
【问题讨论】:
-
您能否提供您所指的嵌套 JSON 的几层的 sn-p?
-
我不确定到底发生了什么,但
getData函数非常可疑。它设置jobs,然后进入一个循环,在该循环中它立即返回items,不管是什么。该循环等效于if (jobs.length > 0) return items,因为即使循环执行一次,它也会返回(无需再次执行循环)。如果jobs.length === 0那么它会从函数底部掉下来并返回undefined。
标签: javascript json vue.js