如何使用for()实现.map()?

沙菲扎迪(Shafizadeh)

我有这些数组和变量:

var arr      = [['one','blue'], ['two','red'], ['three','green']]   
var variable = 'thre';

我也有这段代码:

arr.map(function(x){ 
    if(x[0].indexOf(variable) >= 0)
    {
        alert('Number is found');
    }
});

如您所知,它map是一个循环,在上面的数组中,包含三个项,然后map执行其语句3次。这样alert就可以运行了。


现在,我试图限制映射,我的意思是我想执行2次语句。所以我for()喜欢这样的用户

for ( var c = 0; c < 2; c++ ) {
    if ( arr[c][0].indexOf(variable) >= 0 )
    {
        alert('number is found');
    }
}

但是^不起作用,它给了我这个错误:

未捕获的TypeError:无法读取未定义的属性“ 0”(在第2行中)

我该如何解决?


编辑:这是我的现实代码:

    ZippedArray.map(function(x){
                    if(x[0].indexOf(name) >= 0)
                    {
                        MatchesNames.push(x[0]);
                        MatchesIds.push(x[1]);
                    }
                });

我想要这个输出:

MatchesNames = MatchesNames.slice(0,2);
MatchesIds   = MatchesIds.slice(0,2);

如何限制.map()我想要break;2次之后的东西

用户名

根据您的评论,您似乎要循环播放,直到在if条件中找到两个匹配项为止

在这种情况下,您可以使用.some(),这将在您返回true(或任何真实值)后立即终止循环

ZippedArray.some(function(x){
    if(x[0].indexOf(name) >= 0)
    {
        MatchesNames.push(x[0]);
        MatchesIds.push(x[1]);
    }
    return MatchesNames.length == 2; // Breaks when this returns `true`
});

本示例假定MatchesNames在调用之前该字段为空.some()


如果数组中可能还有其他项目,而您最多只想再增加两个,则可以保留一个计数。

var found = 0;

ZippedArray.some(function(x){
    if(x[0].indexOf(name) >= 0)
    {
        MatchesNames.push(x[0]);
        MatchesIds.push(x[1]);
        found++;
    }
    return found == 2;
});

如果要使用传统for循环,请执行以下操作:

var found = 0;

for (var i = 0; i < ZippedArray.length; i++) {
    var x = ZippedArray[i];

    if(x[0].indexOf(name) >= 0)
    {
        MatchesNames.push(x[0]);
        MatchesIds.push(x[1]);
        found++;
    }
    if (found == 2) {
        break;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

HashMap实现中如何使用Map.Entry?

如何为Map实现创建自定义迭代器?

如何使用流将Map的Map转换为Object的Map

如何实现std :: unordered_map

如何使用递归在ruby中重新实现map方法?

babel如何实现Set / Map polyfills

如何实现与std :: unordered_map一起使用的CString哈希函数?

如何正确实现input $ map_marker_click?

如何使用JavaScript在包含json对象的变量上实现map方法

如何实现Task.Map

如何正确实现以对象为键的Map?

Intellij调试:如何检查实现Map的类的成员变量?

如何在Ruby的Array类中修改map函数的实现

使用map和foldr,haskell实现功能

如何在python中使用multiprocessing.Pool.map实现对象中的功能?

XPath 2.0:如何实现map / hash / associative_array

如何实现std :: map的排序?

如何在Android中实现Google Map的全部功能

使用first last和map实现reduce

使用 Map 和 Zip 函数实现的 zipWith 函数

如何在react Js中使用map实现嵌套循环

std::unordered_map 搜索算法是如何实现的?

什么是 std::map<K,V>::map; 以及如何知道在实现/使用 stl 容器和函数时使用什么命名空间?

使用 Map 时如何实现 for 循环?

使用索引列表实现 map 函数

使用map在javascript中实现一个函数

在 TypeScript 中使用 Reduce 实现 Map 函数

如何在 Result::map 中实现最佳模式匹配

如何在不使用 map() 数组方法的情况下实现相同的结果?在这里使用 map() 数组方法到底有什么意义?