私の本の定義は、メソッドが呼び出された配列の各要素を指定した関数に渡し、その関数によって返された値を含む新しい配列を返すというものです。
a = [1,2,3]
a.map(function(x) { return x*x; }); // b is [1,4,9]
4 が見つからない場合、関数は 1 のみを返すようにしたいと思います。
ケースは
var bool = false;
a.map(function(x) {
if (x == 4){
bool = true;
}
return x;
}).filter(function(x) {if( (x == 1) && ( bool = true)){ return null}});
私がそれを使用したい方法は、配列を反復処理し、最後にマップを動的に変更することです。どうすればいいですか?
私の問題は文字列に関するものなので、1 が不明と呼ばれる別のケースを次に示します。また、「不明」以降が見つかった場合は、参加する前に「不明」をリストから削除してください。
var wordList = [];
var newSource = false;
str = results[i].Meaning.map(function(m){
count++;
if ((!m.Source && !contains(wordList, "unknown"))) {
wordList[count] = "unknown";
return "unknown";
}
if (!m.Source ) {
return m.Source;
}
if ( contains(wordList, "unknown") ) {
newSource = true;
}
if (!contains(wordList, m.Source) ) {
wordList[count] = m.Source;
return m.Source;
}
}).filter(function(x) { return x }).filter(function(x){
if (newSource == true ) { return (x != "unknown")}}).join(', ');