javascript - js获取数组特定的index的对象,如何方便快捷?
PHP中文网
PHP中文网 2017-04-11 11:46:31
[JavaScript讨论组]
var nodedata=[];
                angular.foreach(splitDatas,function(item){
                    //这里可能是7,9,20,30,可否有一个地方专门写这个需要的数字呢
                    if (item.nodeIndex==7) {
                        
                        nodedata.push(item);
                        
                    }
                    
                    scope.nodedata=nodedata;
                    
                });

如图,splitDatas可能包含nodeIndex在1到31的数组,然后,
取出自己想要的几个作为新的数组,如何方便快捷地写。以后也可以方便地改呢?

==========================================================

按照网友的提示,用filter和indexOf,不行啊,得到的结果是[]。

var splitDatas=jsonData.nodeStatusValue.split(',').map(function(v){
                    var itemArr = v.split('-');
                    return {
                        nodeIndex: itemArr[0],
                        status: itemArr[1],
                    }
                });
                
                var nodedata=splitDatas.filter(function(element,index,array) {
                    
                    console.log("element",element);
                    
                    return ([7,13,17,23,30].indexOf(element.nodeIndex) > -1);
                    
                });
                console.log("nodedata:",nodedata);

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
阿神
    var splitDatas = [];
    for (var i=1; i<=31; i++) {
        splitDatas[i] = {
            nodeIndex: i
        };
    }

    var arr = splitDatas.filter(function(element, index, array) {
        return ([7,9,20,30].indexOf(element.nodeIndex) > -1);
    });

    console.log(arr);

试试这样?

黄舟

for循环加if判断就可以了,逻辑你都懂了,没必要用forEach,性能和可读性都不好。

阿神

如果可以用数组元素判断是否要加入新数组,可以用数组的filter方法

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号