我们说我有一个
的对象var people = [
{name: 'John'}, // 0
{name: 'James'}, // 1
{name: 'Sue'}, // 2
{name: 'Mary'}, // 3
{name: 'Will'}, // 4
{name: 'Lukas'}, // 5
{name: 'Sam'} // 6
];
然后我有这个数组:var history = [0, 2, 4, 6]; // we have John, Sue, Will and Sam
使用Lodash或常规JavaScript,如果在true
数组中找到输入的值,如何让它返回false
或history[]
。
例如,isInHistoryArray(5)
会返回false
,但isInHistoryArray(2)
会返回true
答案 0 :(得分:2)
您可以使用“includes'方法
history.includes(5) // false
history.includes(0) // true
答案 1 :(得分:2)
例如
你在小游戏中有一系列玩家:
var people = [
{name: 'John'},
{name: 'James'},
{name: 'Sue'},
{name: 'Mary'},
{name: 'Will'},
{name: 'Lukas'},
{name: 'Sam'}
];
你有......实际联系人的阵列:
var history = [0, 2, 4, 6];
好的,我们可以说这两个容器都在全球范围内让您感到舒适。
您可以通过此功能体
进行检查function checkHistory(a){
for(var i = 0; i < history.length; i++){
if(history[i] === a) return true;
}return false;}
答案 2 :(得分:1)
数组有一个indexOf
方法,可以将你提供的内容与数组中的条目进行比较(使用严格比较,===
)并告诉你第一个匹配的索引,或-1(具体而言) )如果没有匹配。所以:
function isInHistoryArray(value) {
return history.indexOf(value) !== -1;
}
在ES2015中,还有Array.find
和Array.findIndex
(两者都可以在较旧的引擎上进行多种填充),可以让您提供谓词回调,但是您不需要这样做您的输入是数字,您检查的内容也是数字。