无法阅读财产&替换'在if语句中未定义

时间:2018-05-25 16:20:20

标签: javascript jquery arrays

我正在使用if语句中的现有数组的拼接更新变量,然后该变量应该仅在更新的数组上运行我的循环,但是我一直在获取无法读取的属性'替换'在我的值数组上未定义。我只是得到这个错误,因为我需要输入值加一个数组索引,因为我需要两个值范围的上限。 (值[i + 1] .replace(',','')。为什么+ 1导致替换将值视为未定义的任何想法?提前感谢任何可能的帮助!

dropDown = function (arg) {
if ($('select[name="est_property_value"]').length != 0) {
    var values = ["0", "60,000", "85,000", "90,000", "95,000", "100,000", "105,000", "110,000", "115,000", "120,000", "125,000", "130,000", "135,000", "140,000", "145,000", "150,000", "155,000", "160,000", "165,000", "170,000", "175,000", "180,000", "185,000", "190,000", "195,000", "200,000", "210,000", "220,000", "230,000", "240,000", "250,000", "260,000", "270,000", "280,000", "290,000", "300,000", "310,000", "320,000", "330,000", "340,000", "350,000", "360,000", "370,000", "380,000", "390,000", "400,000", "420,000", "440,000", "460,000", "480,000", "500,000", "520,000", "540,000", "560,000", "580,000", "600,000", "620,000", "640,000", "660,000", "680,000", "700,000", "720,000", "740,000", "760,000", "780,000", "800,000", "820,000", "840,000", "860,000", "880,000", "900,000", "920,000", "940,000", "960,000", "980,000", "1,000,000", "1,500,000"],
        anchor = $('select[name="est_property_value"]').val();

    // default arg loads larger ltv on page load
    if (arg === 'default') {
        values = values.splice(0, 18);
    }
    console.log(values);
        for (var i = 0; i < values.length; i++) {
            valueToInt = values[i].replace(',', '');
            if (valueToInt < parseInt(anchor)) {
                curValue = '<option value="' + values[i + 1].replace(',', '') + 1 + '">' + '$' + values[i] + ' - $' + values[i + 1] + '</option>';
                $('select[name="mortgage_amount"]').append(curValue);
            }

        }


}
return;

}

1 个答案:

答案 0 :(得分:1)

正如您提到的那样,i + 1会出现这个问题。因为它在您的数组中不存在。您可以在for循环中使用条件,因此当下一个元素存在时,使用它。当你到达数组的最后一个元素时,例如使用 0

将您的for循环更改为此

for (var i = 0; i < values.length; i++) {
  valueToInt = values[i].replace(',', '');
  if (valueToInt < parseInt(anchor)) {
    curValue = '<option value="' + (values[i + 1] ? values[i + 1] : '0').replace(',', '') + 1 + '">' + '$' + values[i] + ' - $' + (values[i + 1] ? values[i + 1] : '0') + '</option>';
    $('select[name="mortgage_amount"]').append(curValue);
  }

}