我书中的定义是该方法将调用它的数组的每个元素传递给您指定的函数,并返回一个包含该函数返回值的新数组。map()函数如何在数组上工作?
a = [1,2,3]
a.map(function(x) { return x*x; }); // b is [1,4,9]
我想这个函数只返回1,如果没有找到4。
的情况下将是
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(', ');
您没有在地图功能中包含“return”。 – Mouser 2015-02-11 16:43:50
对于这样的问题,我建议始终查看[MDN文档](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)。 – DontVoteMeDown 2015-02-11 16:44:07
听起来你只是想'a.indexOf(4)> = 0'。我没有看到在这里使用'.map()'的理由。 – jfriend00 2015-02-11 16:53:18