Javascript:如何在此脚本中使用split()函数

时间:2013-01-17 17:29:25

标签: javascript arrays

有人可以帮我这个吗?

我有另一个程序员的这个功能:

function checkRequired(fieldList) {
    var field = null;
    var blankFields = [];
    for (var i = 0; i < fieldList.length; i++) {
        listItem = fieldList[i].split;
        fieldId = field[0];
        label = field[1];
        field = document.getElementById(fieldList[i].split("||")[0]);
        if (isVisible(field) && isBlank(field)) {
            blankFields[blankFields.length] = fieldList[i].split[1];
        }
    }

我将这个json数组传递给它:

var fieldList = new Array("'15||Project Requested By'","'18||Project Title'","'20||Banner Details'","'202||Flyer Details'","'2134||If Gl Code Not above'","'5862||Quantity'");

使用FB我发现此行[listItem = fieldList[i].split;]

上的功能错误

我并不完全理解.split正在做什么以及它造成的问题。

任何帮助都将不胜感激。

更新:添加的图像显示错误发生的位置: enter image description here

2 个答案:

答案 0 :(得分:1)

您需要为split提供一个参数,告诉它要拆分的内容。

现在,您只需将split功能本身分配给listItem;你没有打电话给它。

你可能意味着

listItem = fieldList[i].split("||");

MDN Docs for split

修改

进一步检查时,您没有向field分配任何内容,因此在您尝试像数组一样访问它时,它等于null。因此,你可能的意思是:

 field = fieldList[i].split("||");

答案 1 :(得分:0)

我的猜测是函数应该是这样的:

function checkRequired(fieldList) {
    var field = null,
        blankFields = [],
        listText, listItem, fieldId, label;

    for (var i = 0; i < fieldList.length; i++) {
        listText = fieldList[i];
        listText = listText.substring(1, listText.length - 1); // trim ' (single quote)
        listItem = listText.split("||");
        fieldId = listItem[0];
        label = listItem[1];
        field = document.getElementById(fieldId);

        if (isVisible(field) && isBlank(field)) {
            blankFields.push(label);
        }
    }

    return blankFields;
}

假设isVisible()和isBlank()在某处定义。