我书中的定义是该方法将调用它的数组的每个元素传递给您指定的函数,并返回一个包含该函数返回值的新数组。
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(', ');