Javascript 通过对象而不是数组分析值

Javascript 通过对象而不是数组分析值,javascript,underscore.js,Javascript,Underscore.js,这是我的 settings: Object color: "#858789" cursor: "cursors/coin.png" height: 100 image1: "images/slide3.png" image2: "images/slide5.png" image3: "images/slide5.png" image4: "images/slide2.png" image5: "images/slide7.png" image6: "images/slide6.png" imag

这是我的

settings: Object
color: "#858789"
cursor: "cursors/coin.png"
height: 100
image1: "images/slide3.png"
image2: "images/slide5.png"
image3: "images/slide5.png"
image4: "images/slide2.png"
image5: "images/slide7.png"
image6: "images/slide6.png"
image7: "images/slide6.png"
image8: "images/slide1.png"
image9: "images/slide1.png"
imageCover: "images/scratchimg2.gif"
overlay: "none"
realtimePercent: true
scratchDown: null
scratchMove: function (e, percent)
scratchUp: null
size: 10
width: 100
我需要/想要做的只是访问图像

我使用下划线来过滤并填充一个仅包含image1-image9的数组。剩下的垃圾我都不在乎了

有什么想法吗

下面是我的下划线代码:

        //Populate the image array
        imgID = "image" + (parseFloat(i) + 1);

        var imgName = _.filter({imgID: "images/"}, function(imgnmid) {

            imgArray.push(imgnmid)
            return imgnmid = "images/";

        });
是的,我知道,这里一团糟

这在闭包函数中

像这样:

 (function($)
 {
   $.fn.someFuncName = function(option, settings)
   {


    .....

  }

})(Jquery);

谢谢…

这个怎么样?对对象的关键点进行相当简单的迭代。您也可以使用下划线,但我认为您不需要它

JS

var obj = {
    settings: {},
    color: "#858789",
    cursor: "cursors/coin.png",
    height: 100,
    image1: "images/slide3.png",
    image2: "images/slide5.png",
    image3: "images/slide5.png",
    image4: "images/slide2.png",
    image5: "images/slide7.png",
    image6: "images/slide6.png",
    image7: "images/slide6.png",
    image8: "images/slide1.png",
    image9: "images/slide1.png",
    imageCover: "images/scratchimg2.gif",
    overlay: "none",
    realtimePercent: true,
    scratchDown: null,
    scratchMove: function (e, percent){},
    scratchUp: null,
    size: 10,
    width: 100 
}; 

function extractImages(obj){
    var imgArray = [], 
        num = 0; 

    //Iterate over the object's keys (no need for underscore to do this). 
    for(var key in obj){

        //http://stackoverflow.com/a/10003709/402706
        //Get the number off the key (if there is one)
        num = parseInt(key.replace( /^\D+/g, ''), 10);  

        //is the text 'image' part of the key and is number 1-9
        if(key.indexOf('image') > -1 && num > 0 && num < 10){
            imgArray.push(obj[key]); 
        }
    }
    return imgArray; 
}

alert(extractImages(obj)); 
var obj={
设置:{},
颜色:#858789“,
光标:“cursors/coin.png”,
身高:100,
image1:“images/slide3.png”,
图2:“images/slide5.png”,
图3:“images/slide5.png”,
image4:“images/slide2.png”,
图5:“images/slide7.png”,
图6:“images/slide6.png”,
图7:“images/slide6.png”,
图8:“images/slide1.png”,
图9:“images/slide1.png”,
imageCover:“images/scratchimg2.gif”,
覆盖:“无”,
实时百分比:是的,
scratchDown:null,
scratchMove:函数(e,百分比){},
scratchUp:null,
尺寸:10,
宽度:100
}; 
函数提取图像(obj){
var Imgaray=[],
num=0;
//迭代对象的键(不需要下划线)。
for(obj中的var键){
//http://stackoverflow.com/a/10003709/402706
//从钥匙上取下号码(如果有)
num=parseInt(key.replace(/^\D+/g',),10);
//文本“图像”是键的一部分,是数字1-9
if(key.indexOf('image')>-1&&num>0&&num<10){
imgaray.push(对象[键]);
}
}
返回英加里;
}
警报(提取图像(obj));
您可以执行以下操作:

var i = 1;
_.filter(images, function (value, index) { // images is your full object
    if ( 'image' + i == index ) {
        imgArray.push(value); // push value
        ++i;
    }
});