JavaScript - 有条件地将字符串推送到对象

Fol*_*y.H -3 javascript

我想有条件地将item.description一个字符串推送到一个对象中.

基本上,我有两个输入字段,用户需要输入拾取和下降位置.我拿这两个地址,然后将它们推入一个数组,这样我就可以用另一种方法检索它们.为此,我有以下代码:

chooseItem(item) {
  this.pickAndDropLocationArray = {};

  if (this.lastFocusedName == 'dropOff') {
    this.pickAndDropLocationArray.dropOff = item.description
  } else if (this.lastFocusedName == 'pickUp') {
  this.pickAndDropLocationArray.pickUp = item.description
 }
}
Run Code Online (Sandbox Code Playgroud)

预期产量:

 {"pickUp":"locationName","dropOff":"locationName"}
Run Code Online (Sandbox Code Playgroud)

但问题是,如果它推送对象的droppoff,它会自动从对象中删除拾取,这在编写的代码时非常合乎逻辑.我没有想法,我不知道如何解决它.

epa*_*llo 5

似乎每次调用时都会覆盖对象.如果需要初始化,则需要在覆盖之前检查其存在.

this.pickAndDropLocationArray = {};

应该

this.pickAndDropLocationArray = this.pickAndDropLocationArray || {}; 
Run Code Online (Sandbox Code Playgroud)

或者真正的检查

if (!this.pickAndDropLocationArray) {
    this.pickAndDropLocationArray = {}; 
}
Run Code Online (Sandbox Code Playgroud)

所以要清理代码

function chooseItem(item) {
  this.pickAndDropLocationArray = this.pickAndDropLocationArray || {};
  this.pickAndDropLocationArray[this.lastFocusedName] = item.description
}
Run Code Online (Sandbox Code Playgroud)