Vue.js Javascriptの壁に当たった。Vue.jsの最後のオブジェクトの属性にアクセスする
は、ここに私のコードです:物事のため
<div id="app">
<h1>Things</h1>
<div v-for="thing in things">
<input v-model="thing.val">
</div>
<button @click="addThing">
NewThing
</button>
<pre>{{ $data | json }}</pre>
</div>
new Vue({
el: '#app',
data: {
things: [],
things2: [],
things3: [],
things4: []
},
methods: {
addFind: function() {
this.things.push({ val: '' });
var l = this.things[this.things.length-1];
this.things2.push(l);
this.things3.push(l.val);
this.things4.push(l["val"]);
}
}
});
出力と期待通りthings2は結構ですと。 things3とthings4の出力が期待通りではありません。 配列内のオブジェクトの「val」キーにアクセスできません。私はJavascriptオブジェクトの専門家ではありませんが、これはうまくいくはずですか?私は何が欠けていますか? 「val」にアクセスするにはどうすればいいですか?
出力:https://jsfiddle.net/rcLgmv18/3/
UPDATE:ここ
{
"things": [
{
"val": "first"
},
{
"val": "second"
},
{
"val": ""
}
],
"things2": [
{
"val": "first"
},
{
"val": "second"
},
{
"val": ""
}
],
"things3": [
"",
"",
""
]
}
はデモである「」:これは、いくつかの理由で、オブジェクトが{valを持つ配列の最後であることが今明らかです}。 (length-1)の代わりに、私が(length-2)するなら、私は望ましい振る舞いを得ます。問題は、val = ""の最後のオブジェクトの種類がなぜ奇妙なのでしょうか?それはVue.jsかJavascriptの機能ですか?
あなたは配列の最後の項目の 'val'プロパティにアクセスしています。そのプロパティの値は空文字列 '' ''で、 'things3'にプッシュされます。 – thanksd
'this.things'はオブジェクトの配列で、' l'は 'this.things'の最後の要素なので、キー' val'のオブジェクトです。 'l.val'は空文字列を与えます。正常と思われる。あなたは何を期待していますか? – Psidom
@thanksdあなたは最高です!しかし、なぜ最後の要素は空ですか?私はそれを得ることはありません... – Chikipowpow