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
 }
}

预期产出:

 {"pickUp":"locationName","dropOff":"locationName"}

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

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

this.pickAndDropLocationArray = {};

应该是

this.pickAndDropLocationArray = this.pickAndDropLocationArray || {}; 

或真实支票

if (!this.pickAndDropLocationArray) {
    this.pickAndDropLocationArray = {}; 
}

所以要清理代码

function chooseItem(item) {
  this.pickAndDropLocationArray = this.pickAndDropLocationArray || {};
  this.pickAndDropLocationArray[this.lastFocusedName] = item.description
}

最新更新