在if语句中使用array.includes时出现函数预期错误

时间:2018-07-10 20:00:26

标签: javascript

我不确定为什么在搜索网络时会出现“功能预期”错误,而没有提供有用的信息。谢谢您的宝贵时间!

oCollectedValue =new Array();
var i = 0
for (i; i < CollectedValue.length; i++)
{
    if (Attribute.includes(CollectedValue[i]))
    {
        oCollectedValue.push(CollectedValue[i])
    }
} 

3 个答案:

答案 0 :(得分:0)

If you can rely on IE9+,您可以使用indexOf代替includes

const CollectedValue = ["YES", "NO", "TEST", "YES", "NO"];
const Attribute = ["YES", "NO"];

oCollectedValue =new Array();
var i = 0
for (i; i < CollectedValue.length; i++)
{
    if (Attribute.indexOf(CollectedValue[i]) > -1)
    {
        oCollectedValue.push(CollectedValue[i])
    }
} 

console.log(oCollectedValue);

答案 1 :(得分:0)

问题不在于您在此处获得的代码中,而是在代码 around 中。错误“预期功能” 表示正在调用代码的代码希望返回一个函数,但是您的代码返回一个值。您应该改为返回一个函数。这是一个示例:

CollectedValue = ["YES", "NO", "TEST", "YES", "NO"];
Attribute = ["YES", "NO"];


function getFuncCollectedValue(){
    function getCollectedValue(Attribute, CollectedValue) {
        oCollectedValue = [];
        var i = 0;
        for (var i; i < CollectedValue.length; i++) {
            if (Attribute.indexOf(CollectedValue[i]) > -1) { // correction by Aankhen
                oCollectedValue.push(CollectedValue[i]);
            }
        }
        return oCollectedValue;
    }
    return getCollectedValue;
}

console.log("In next line we get function as return value:");
console.log(getFuncCollectedValue()); // Returns a function, that's what your code expects

// We can now call returned function like this
console.log("Now we are calling returned function:");
console.log(getFuncCollectedValue()(Attribute, CollectedValue));

如果这一切看起来都不熟悉,请查找“函数返回函数”。

答案 2 :(得分:0)

我猜我正在使用的编译器没有注册函数的使用或方法的直接使用。因此,为了解决所有我必须以以下方式构造代码的方式来解决我遇到的问题。希望这可以帮助某人。

oCollectedValue = [];
oCreatedOn = [];
var x = 0

for (x; x < Attribute.length; x++)
{
        for (var i = 0; i < CollectedValue.length; i++) 
        {
            if (Attribute[x] === CollectedValue[i]) 
            { 
                oCollectedValue.push(CollectedValue[i]);
                oCreatedOn.push(CreatedOn[i]);
            }
        }
}