2017-01-07 8 views
-2

名前の配列を取り、 "J"で始まる名前の配列のみを返す関数を作成しようとしています。"J"で始まる配列javacriptをフィルターに掛ける

以下は私が持っているものですが、それ以外はすべて返します。

var names = ["john", "sat", "james", "mark"]; 

function filterNames(array) { 

    var namesNew = names.filter(function (item) { 
     return item.indexOf("j"); 
    }); 

    return namesNew; 
} 
+0

試みる '返しitem.toLowerCase()のindexOf( "J")=== 0;' – haxxxton

+0

あなたは読みました[のドキュメントを 'indexOf'](HTTPS:/ /developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)?それは通常、始めるのに良い場所です。ところで、決して使用されない 'array'パラメータを取る' filterNames'関数の意図は何ですか? –

+5

@haxxxton 'item.toLowerCase()[0] === 'j''はやや好ましいでしょうか? –

答えて

0

return item.indexOf("j") == 0;

のindexOfを試してみてください項目内の文字の位置を返します。

0

このコードは役に立ちます。

var names = ["john", "sat", "James", "mark"]; 
var arrLen = names.length; 
for (var i=0; i<arrLen; i++) { 
    for (var j=0; j<names[i].length; j++) { 
     var asciiNum = names[i].charCodeAt(j); 
     if (asciiNum === 74 || asciiNum === 106) { 
     console.log(names[i]); // john, James 
    } 
} 

OR return !item.indexOf("j");

+0

なぜ文字コードを使用しますか?また、コードでは、最初の文字だけでなく、その中のどこにでも "J"を持つエントリが記録されます。最後に、彼の質問は、彼は、ログの一致ではなく、配列を返したいと述べた。 –

+0

sorry.my英語はあまりよくありませんが、私のコードでは、あなたが言うすべてのことができます。私が知っていることを考えて送っていきたい –

関連する問題