首页 > 解决方案 > 在 netSuite 中提取字段值时键值对出现问题

问题描述

好的,我正在尝试调试一件非常烦人的事情。所以,我有一个迭代很多项目的函数,我在处理一些项目时遇到了问题。

这是我遇到问题的一个项目的例子。我创建了一个键值对,其中包含:

var KeyValueobj = {
    "Stainless steel plate EN 1.4301 0-3mm >2000mm wide": recordSetPricesItemObj.custrecordss_p_1403_03b2000w,
    "Stainless steel plate EN 1.4301 0-3mm <2000mm wide": recordSetPricesItemObj.custrecordss_p_1403_03s2000w,
    "Stainless steel plate EN 1.4301 0-3mm =2000mm wide": recordSetPricesItemObj.custrecordss_p_1403_03e2000w,

"Stainless steel plate EN 1.4301 4-12mm >2000mm wide": recordSetPricesItemObj.custrecordss_p_1403_412b2000w,
"Stainless steel plate EN 1.4301 4-12mm <2000mm wide": recordSetPricesItemObj.custrecordss_p_1403_412s2000w,
"Stainless steel plate EN 1.4301 4-12mm =2000mm wide": recordSetPricesItemObj.custrecordss_p_1403_412e2000w,

"Stainless steel plate EN 1.4301 >15mm >2000mm wide": recordSetPricesItemObj.custrecordss_p_1403_15b2000w,
"Stainless steel plate EN 1.4301 >15mm <2000mm wide": recordSetPricesItemObj.custrecordss_p_1403_15s2000w,
"Stainless steel plate EN 1.4301 >15mm =2000mm wide": recordSetPricesItemObj.custrecordss_p_1403_15e2000w,

"Stainless steel plate EN 1.4401 >15mm >2000mm wide": recordSetPricesItemObj.custrecordss_p_14401_15b2000w,
"Stainless steel plate EN 1.4401 >15mm <2000mm wide": recordSetPricesItemObj.custrecordss_p_14401_15s2000w,
"Stainless steel plate EN 1.4401 >15mm =2000mm wide": recordSetPricesItemObj.custrecordss_p_14401_15e2000w,

"Stainless steel plate EN 1.4401 0-3mm >2000mm wide": recordSetPricesItemObj.custrecordss_p_14401_03b2000w,
"Stainless steel plate EN 1.4401 0-3mm <2000mm wide": recordSetPricesItemObj.custrecordss_p_14401_03s2000w,
"Stainless steel plate EN 1.4401 0-3mm =2000mm wide": recordSetPricesItemObj.custrecordss_p_14401_03e2000w,

"Stainless steel plate EN 1.4401 4-12mm >2000mm wide": recordSetPricesItemObj.custrecordss_p_14401_412b2000w,
"Stainless steel plate EN 1.4401 4-12mm <2000mm wide": recordSetPricesItemObj.custrecordss_p_14401_412s2000w,
"Stainless steel plate EN 1.4401 4-12mm =2000mm wide": recordSetPricesItemObj.custrecordss_p_14401_412e2000w,

}; 我在 NetSuite 中搜索记录的字段,然后获取它们的值,然后将这些值与正确的字段名称配对。

我创建了这个测试:

if (bomItem.displayname == "Stainless steel plate 1.4301/1.4307 t=10 EN 10088") {
    log.debug("CHECK1 : " + bomItem.custitem12)
    log.debug("CHECK2 : " + parseFloat(KeyValueobj["Stainless steel plate EN 1.4301 4-12mm >2000mm wide"]).toFixed(2))
    log.debug("CHECK3 : " + parseFloat(KeyValueobj[bomItem.custitem12]).toFixed(2))
    log.debug(bomItem.custitem12 == "Stainless steel plate EN 1.4301 4-12mm >2000mm wide")
}
Results:

check1 = "Stainless steel plate EN 1.4301 4-12mm >2000mm wide"
check2 = 26
check3 = NaN
check = false

这在我看来毫无意义,为什么当我比较 2 个相同的字符串时它们不相等?

我试图检查空格或使用正则表达式进行测试并删除所有空格然后进行比较并且仍然 == false..

我也试过这个:

log.debug("CHECK6 : " + parseFloat(KeyValueobj[bomItem["custitem12"]]).toFixed(2));

我在这些显示名称上遇到了这个错误。有人可以帮忙吗?

我尝试过使用 toString()、Stringify(),用正则表达式删除所有空格,尝试使用 normalize,也尝试使用 unescape()

标签: javascriptnetsuitesuitescript

解决方案


推荐阅读