// Why doesn't this:
_.invoke(['D','C'], 'lastIndexOf', ['A','B','C'])
// Return this:
[-1,2]?
我有一个字符串。 (输入)
'ABC'
拆分为数组。 (INPUTBUFFER)
[ 'A', 'B', 'C']
我还有一个包含任意字符的数组。 (TriggerChars)
['D','E']
我想检查InputBuffer中的最后一项,看看是否匹配任何TriggerChars。
我想在InputBuffer中最后一次出现两个TriggerChars。
_.invoke(['D','E'], 'lastIndexOf', ['A','B','C']);
// Returns [-1,-1] since C isn't D or E.
_.invoke(['D','C'], 'lastIndexOf', ['A','B','C']);
// Why doesn't this return [-1,2]
_.lastIndexOf(['A','B','C'],'D') == -1
_.lastIndexOf(['A','B','C'],'C') == 2
Invoke我没有得到什么? http://underscorejs.org/#invoke
答案 0 :(得分:2)
var InputBuffer = ["A","B","C"];
var TriggerChars = ["D","E"];
_.indexOf( TriggerChars, InputBuffer[InputBuffer.length-1] ) > -1;
评估到true
是否:我想检查InputBuffer中的最后一项,看看是否匹配任何TriggerChars。
答案 1 :(得分:1)
var inputBuffer = ["A","B","C"];
var triggerChars = ["D","E"];
triggerChars.indexOf(inputBuffer[inputBuffer.length-1]) > -1
或者只是跳过下划线,上面完全相同的解决方案,除了依赖,
好吧我把它更新了
var inputBuffer = ["A","B","C"];
var triggerChars = ["D","C"];
var index = [];
for(var i = 0; i < triggerChars.length; i++){
index.push(inputBuffer.lastIndexOf(triggerChars[i]));
}
console.log(index);
-> [-1,2]
答案 2 :(得分:1)
您需要的是:
_.map(['D', 'C'], function (x) { return _.lastIndexOf(['A', 'B', 'C'], x)})