我正在Vue工作并尝试将我收集的一些值发送到服务器,但是我发现当前的实现有点令人沮丧。
我在Vue方法中有一个函数,它从原始对象POST我收集的值:
var inputvalues = {};
// Get values from all inputs
for (key in this.entries) {
var val = this.entries[key].value;
if (val != undefined) {
console.log(key,val);
Vue.set(inputvalues,key,val)
}
}
[ Here is the AJAX part which sends 'inputvalues' to the server - not so relevant]
对象如下所示:
entries: {
something1: {
options: {
"option1":"Option 1",
"option2":"Option 2",
"option3":"Option 3"
},
visible:true,
value:undefined
},
something2: {
options: {
"one":"One",
"two":"Two",
},
visible:true,
value:undefined
}
}
这个“有效”,但我对结果不满意。
是否有类似this.entries[].value
的内容可以获取此Object的所有值,或者我应该在单独的Object中写入输入字段的值,还是......我不知道是哪种方式正确的方式。
提前致谢。
答案 0 :(得分:1)
也许稍微优雅一点:
const inputvalues = Object.entries(this.entries)
.map(([k, v]) => ([k, v.value]))
.reduce((res, [k, v]) => (v !== undefined && (res[k] = v), res), {});
或者功能稍差:
const inputvalues = {};
for(const [key, obj] of Object.entries(this.entries))
if(obj.value !== undefined)
inputvalues[key] = obj.value;