0
// Why doesn't this:
_.invoke(['D','C'], 'lastIndexOf', ['A','B','C'])

// Return this:
[-1,2]?

私はひもを持っています。(入力)

「ABC」

配列に分割します。(入力バッファ)

['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

4

3 に答える 3

2
var InputBuffer = ["A","B","C"];
var TriggerChars = ["D","E"];

_.indexOf( TriggerChars, InputBuffer[InputBuffer.length-1] ) > -1;

次の場合に評価しtrueます: InputBuffer の最後の項目をチェックして、TriggerChars のいずれかと一致するかどうかを確認します。

于 2012-06-27T09:37:28.577 に答える
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]
于 2012-06-27T10:10:44.600 に答える
1

必要なものは次のとおりです。

_.map(['D', 'C'], function (x) { return _.lastIndexOf(['A', 'B', 'C'], x)})
于 2012-06-27T13:32:36.070 に答える