使用来自另一个包含键的数组的值过滤 json 响应
Filter json response using values from another array containing keys
我正在尝试使用包含在不同数组中的键值从 JSON 响应中获取值。我的代码如下,但是当我尝试记录结果时,我变得不确定。
let fdName =["SerialNo","denDate","denShift","denTime","denWs_1","denWs_2","denVol_1","denVol_2","denPwdrMix"];
let dtValue = [{
id: 1,
SerialNo: 1,
denDate: "2019-09-09",
denShift: "Day",
denTime: "10:32:00",
denWs_1: 10.23,
denWs_2: 11.2,
denVol_1: 12.5,
denVol_2: 10.12,
denPwdrMix: 0.75,
created_at: null,
updated_at: null
}];
var savedData = fdName.map(function(e) {
var filteredRes = dtValue.find(a => a[key] == e);
return filteredRes ;});
console.log(savedData);
预期结果:[1, 2019-09-09, Day, 10:32:00, 10:23, 11.2, 12.5, 10.12, 0.75];
我想使用 v-for
在 table 中显示获得的结果,如下所示
<tbody>
<tr>
<td
v-for="(dtValue, sdtValue ) in savedData "
:key="sdtValue"
>
{{dtValue}}
</td>
</tr>
</tbody>
如果要基于fdName
映射,则需要2个循环来渲染结果。
let fdName =["SerialNo","denDate","denShift","denTime","denWs_1","denWs_2","denVol_1","denVol_2","denPwdrMix"];
let dtValue = [{
id: 1,
SerialNo: 1,
denDate: "2019-09-09",
denShift: "Day",
denTime: "10:32:00",
denWs_1: 10.23,
denWs_2: 11.2,
denVol_1: 12.5,
denVol_2: 10.12,
denPwdrMix: 0.75,
created_at: null,
updated_at: null
}];
var savedData = dtValue.map((e) => fdName.map(key => e[key]));
console.log(savedData);
那么 table 将是:
<tbody>
<tr v-for="data in savedData">
<td v-for="value in data">
{{value}}
</td>
</tr>
</tbody>
你可以不带地图渲染然后只需要一个循环但需要列出所有字段。示例:
<tbody>
<tr v-for="data in dtValue">
<td>{{data[key1]}}</td>
<td>{{data[key2]}}</td>
<td>{{data[key3]}}</td>
<td>{{data[key4]}}</td>
<td>{{data[key5]}}</td>
</tr>
</tbody>
我正在尝试使用包含在不同数组中的键值从 JSON 响应中获取值。我的代码如下,但是当我尝试记录结果时,我变得不确定。
let fdName =["SerialNo","denDate","denShift","denTime","denWs_1","denWs_2","denVol_1","denVol_2","denPwdrMix"];
let dtValue = [{
id: 1,
SerialNo: 1,
denDate: "2019-09-09",
denShift: "Day",
denTime: "10:32:00",
denWs_1: 10.23,
denWs_2: 11.2,
denVol_1: 12.5,
denVol_2: 10.12,
denPwdrMix: 0.75,
created_at: null,
updated_at: null
}];
var savedData = fdName.map(function(e) {
var filteredRes = dtValue.find(a => a[key] == e);
return filteredRes ;});
console.log(savedData);
预期结果:[1, 2019-09-09, Day, 10:32:00, 10:23, 11.2, 12.5, 10.12, 0.75];
我想使用 v-for
在 table 中显示获得的结果,如下所示
<tbody>
<tr>
<td
v-for="(dtValue, sdtValue ) in savedData "
:key="sdtValue"
>
{{dtValue}}
</td>
</tr>
</tbody>
如果要基于fdName
映射,则需要2个循环来渲染结果。
let fdName =["SerialNo","denDate","denShift","denTime","denWs_1","denWs_2","denVol_1","denVol_2","denPwdrMix"];
let dtValue = [{
id: 1,
SerialNo: 1,
denDate: "2019-09-09",
denShift: "Day",
denTime: "10:32:00",
denWs_1: 10.23,
denWs_2: 11.2,
denVol_1: 12.5,
denVol_2: 10.12,
denPwdrMix: 0.75,
created_at: null,
updated_at: null
}];
var savedData = dtValue.map((e) => fdName.map(key => e[key]));
console.log(savedData);
那么 table 将是:
<tbody>
<tr v-for="data in savedData">
<td v-for="value in data">
{{value}}
</td>
</tr>
</tbody>
你可以不带地图渲染然后只需要一个循环但需要列出所有字段。示例:
<tbody>
<tr v-for="data in dtValue">
<td>{{data[key1]}}</td>
<td>{{data[key2]}}</td>
<td>{{data[key3]}}</td>
<td>{{data[key4]}}</td>
<td>{{data[key5]}}</td>
</tr>
</tbody>