如何获取引用内部值的指定对象(javascript)
How to get a specified object reffering to a value inside (javascript)
我需要使用来自同一实例的另一个属性对象的一些值来设置一个 javascript 属性对象。实际上我有以下对象:
var PLAYER = {
slides: {
{ slide_id: 60, slide_content: 'content for slide 1', type: 'slide' },
{ slide_id: 65, slide_content: 'content for slide 2', type: 'slide' },
{ slide_id: 70, slide_content: 'content for slide 3', type: 'slide' },
{ qId: 4, question: 'question text', after_slide: 70, type: 'question' },
{ slide_id: 74, slide_content: 'content for slide 5', type: 'slide' }
},
currentSlide: 0,
container: false,
currentCarouselSlide: 0,
carousel: {},
}
现在我有一个这样的数组:
var carouselRandomSlides = [60,70];
稍后在我的PLAYER
对象中,我有一个函数可以像这样支撑我的幻灯片
<script>
fetchSlide: function(index,increment) {
var _this = this;
$.post('/player/fetchSlide', { slideContent: _this.slides[index] }, function(response){
increment ? (increment == 'increase' ? _this.currentSlide++ : _this.currentSlide--) : null;
$(_this.container).html(response);
if (_this.slides[index].qId) {
this.questions.correctAnswer = _this.slides[index].correct_answer;
$.each(_this.slides[index].carousel, function(i,slideId) {
_this.carousel[++i] = _this.slides[slideId];
});
}
else {
_this.questions.correctAnswer = false;
_this.carousel = {};
}
console.log(_this.carousel);
});
},
</script>
在此函数中,我正在测试当前幻灯片是否是问题if (_this.slides[index].qId)
如果是,那么我动态地尝试创建一个轮播,其中包含60
和70
幻灯片。不能有幻灯片可以播放或超过两个。这不取决于我。下面的代码部分应该可以解决问题
$.each(_this.slides[index].carousel, function(i,slideId) {
_this.carousel[++i] = _this.slides[slideId];
});
但_this.slides[slideId]
与_this.slides[60]
是一样的,实际上我需要_this.slides[1]
如何获取上述$.each()
函数中包含slide_id: 60
的对象?
提前感谢!
var PLAYER = {
slides: [
{ slide_id: 60, slide_content: 'content for slide 1', type: 'slide' },
{ slide_id: 65, slide_content: 'content for slide 2', type: 'slide' },
{ slide_id: 70, slide_content: 'content for slide 3', type: 'slide' },
{ qId: 4, question: 'question text', after_slide: 70, type: 'question' },
{ slide_id: 74, slide_content: 'content for slide 5', type: 'slide' }
]
PLAYER.slides
应该是一个数组。
然后,您可以使用$.grep()
来获取正确的项目。
function getSlideById(id){
return $.grep(PLAYER.slides, function(el,i){
return el.slide_id === id;
})[0]; // returns array so first item [0]
}
阅读更多 关于 $.grep()
如果你的意思是Player.slides
,你可能想使用数组。像这样:
注意: 此 JavaScript 代码将无法按原样工作,您需要对其进行修改。
var PLAYER = {
slides: {
[ slide_id: 60, slide_content: 'content for slide 1', type: 'slide' ],
[ slide_id: 65, slide_content: 'content for slide 2', type: 'slide' ],
[ slide_id: 70, slide_content: 'content for slide 3', type: 'slide' ],
[ qId: 4, question: 'question text', after_slide: 70, type: 'question' ],
[ slide_id: 74, slide_content: 'content for slide 5', type: 'slide' ]
},
currentSlide: 0,
container: false,
currentCarouselSlide: 0,
carousel: {},
}
为了获取内部信息,您可以使用javascript Array.indexOf(content)
方法。
祝你好运。
相关文章:
- 面向对象JavaScript中的私有函数
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- 将字符串转换为对象 javascript/jquery
- 正在检查对象javascript中是否存在嵌套属性
- 时间-日期对象JavaScript getUTCMilliseconds
- 仅在对象(javascript)中解析值
- 使用对象(JavaScript或jQuery)填充选择下拉列表
- 引用另一个对象javascript中的对象
- 如何删除列表中的对象?Javascript nodejs和下划线
- 无法从日期对象javascript获取日期和月份
- 如何在if语句中使用对象-Javascript
- 对象javascript错误
- 对象Javascript的少数实例
- 位置对象Javascript
- 将字符串传递到对象javascript中
- 获取对象Javascript或jQuery的最后一个值
- 鼠标接近对象Javascript
- 这个mixins代码是书中的错误吗;面向对象JavaScript的原理”;
- 使用闭包编译器编写更好的面向对象JavaScript完整示例代码
- 访问对象javascript数组中的对象属性值