I have this variable inside data():
jsonStatham: {
"uniqueOne": {
"field1": "",
"field2": "",
"field3": "",
"field4": "",
"field5": "",
"freeTextArea": ""
},
"uniqueTwo": {
"field1": "",
"field2": "",
"field3":"",
"field4":"",
"field5":"",
"freeTextArea":""
},
"uniqueThree": {
"field1": "",
"field2": "",
"freeTextArea": ""
}
},
What I want is to check if a value from this input field:
<input type="text" name="platform" placeholder="Platform" id="platform" v-model="platform" required/>
is matching one of the keys of “jsonStatham” (uniqueOne/Two/Three) and then push the keys of the matching key into an array. so if the input === uniqueOne, so this array:
inputFields: [ ],
Will look like this: inputFields[“field1″,”field2″,”field3″,”field4″,”field5”]
That’s what I tried:
appendFields() {
for (const [key, value] of Object.entries(this.jsonStatham)) {
if(this.brand === this.jsonStatham[key]){
//console.log("Brand =>", this.brand)
}
//console.log(`${key}: ${value}`);
this.inputFields.push({
[key]:value
})
}
//console.log("ALL input Fields: n",this.inputFields)
},
What I get in inputFields is “uniqueOne”,”uniqueTwo”,”uniqueThree”
Advertisement
Answer
if (this.jsonStatham.hasOwnProperty(this.brand)) {
this.inputFields.push(...Object.keys(this.jsonStatham[this.brand]));
}