2011-10-29 16 views
1

我希望我能得到一些帮助,我的学习,并找出它是什么,我的功能不能正常工作:stringTo的JavaScript

function contains() { 
var substr = 'bar'; 
var str = 'foobar'; 
    if (str.indexOf(substr)) { 
    // Return true if substr is a substring of str 
    return true; 
    } else { 
    // and false if substr is not a substring of str 
    return false; 
    }; 
} 

预先感谢您的人谁可以帮我搞定在学习这个凹凸处。

罗布

+3

str.indexOf(SUBSTR)> - 1(如果找不到字符串,则返回-1) – galchen

+6

可以缩短:'return str.indexOf(substr)> -1;'。 –

回答

2

indexOf回报-1如果它没有找到,~-1 === 0是falsy。每个其他号码都会返回~(因为除0以外的所有号码都是真实的)。 ~是一个有趣的属性~-1 === 0位按钮。

!!转换为布尔值(truthy变为true,falsy变成false)。

所以,你可以这样做:

function contains() { 
    var substr = 'bar'; 
    var str = 'foobar'; 
    return !!~str.indexOf(substr); 
} 

您目前正在返回true如果它没有找到(-1是thruthy)和false如果它在0位置(0是falsy)。