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;
}
});