使用 Underscore.js 的调用与 lastIndexOf
Using Underscore.js's invoke with lastIndexOf
// Why doesn't this:
_.invoke(['D','C'], 'lastIndexOf', ['A','B','C'])
// Return this:
[-1,2]?
我有一根绳子。(输入)
"ABC"
拆分为一个数组。(输入缓冲区)
["A"、"B"、"C"]
我还有一个包含任意字符的数组。(触发器字符)
["D","E"]
我想在输入缓冲区中获取两个触发器字符的最后一次出现。
_.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
我不能通过调用获得什么?http://underscorejs.org/#invoke
var InputBuffer = ["A","B","C"];
var TriggerChars = ["D","E"];
_.indexOf( TriggerChars, InputBuffer[InputBuffer.length-1] ) > -1;
计算结果是否为true
:我想检查输入缓冲区中的最后一项,以查看是否匹配任何触发器字符。
你需要的是:
_.map(['D', 'C'], function (x) { return _.lastIndexOf(['A', 'B', 'C'], x)})
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]
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- node.js:setInterval()正在跳过调用
- 如何在单击复选框后调用控制器方法
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 使用Google Visualization动态调用构造函数
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 调用函数内部的函数
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- Javascript/jQuery中的并行Ajax调用
- 使用 Underscore.js 的调用与 lastIndexOf