首页 > 解决方案 > 如果 x = null 则将对象属性分配给值

问题描述

我有一个 Ember 计算属性,它从 ember 模型创建一个对象。

在其中一个对象属性中,我试图评估一个 ID 是否存在,以及在它不使属性为 0 而不是 null 的情况下。

计算的属性如下:

SpecSortData: computed('customerfr', function() {
  let newArray = [];
  this.get('customerfr').forEach(function(x) {

    function idCheck() {
      if (x.data.speciality_id !== null) {
        return x.data.specialty_id
      } else {
        return 0
      }
    };

    let newData = {
      specialtyID: x.data.specialty_id,
      specialty: x.data.specialty_name,
      customerID: x.data.customer_id,
      tspecID: idCheck()
    }
    newArray.push(newData)
  })
  return newArray
}),

我无法正确评估 idCheck() 函数。special_id 字段是数字或空值。如果它是一个数字,我希望 tspecID 是那个数字。在它为空的情况下,我希望 tspecID 为 0。

上述函数当前将 speciality_id 编号添加到 tspecID 属性,但它不处理 null 情况,它们保持为 null。如果我反转条件,我会将所有 tspecID 属性设置为 0。

我已经尝试了一些条件的变化,并且总是以以下任何一个结束:

我觉得我在评估或函数构造中犯了一个基本错误,但我很难过。

标签: javascriptember.js

解决方案


You could use a logical OR || and take zero if speciality_id is falsy.

BTW, speciality_id !== specialty_id.

function idCheck() {
    return x.data.speciality_id || 0;
}

推荐阅读