如何在javascript中使用数组和对象
我有一系列的车,我在每辆车上循环。我使用window.prompt方法从用户获取输入。我取这个值并通过我的汽车数组过滤它。我只是想知道如何将用户选择的汽车名称限制为仅包含在数组中的名称 小提琴:如何在javascript中使用数组和对象,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一系列的车,我在每辆车上循环。我使用window.prompt方法从用户获取输入。我取这个值并通过我的汽车数组过滤它。我只是想知道如何将用户选择的汽车名称限制为仅包含在数组中的名称 小提琴: 请注意,如果汽车不在列表中,则它不会输出任何内容。在这里摆弄:我试着将你的问题重新表述为目前同行评审中更容易理解的问题。我知道您希望有一个提示,将用户的选择限制为您阵列中的车型 不幸的是,window.prompt无法实现这一点,也没有任何同步阻塞方法来实现它。您将需要使用一个模式对话框,并在选择中插入
请注意,如果汽车不在列表中,则它不会输出任何内容。在这里摆弄:我试着将你的问题重新表述为目前同行评审中更容易理解的问题。我知道您希望有一个提示,将用户的选择限制为您阵列中的车型 不幸的是,window.prompt无法实现这一点,也没有任何同步阻塞方法来实现它。您将需要使用一个模式对话框,并在选择中插入一个常规的html select元素,或者使用一组单选按钮 我已经创造了一个随着我的进步开始变得臃肿的世界。我使用了一些高级技术,只是为了引起您的好奇心,因为我怀疑您对javascript还是新手 Javascript:
你的问题措辞有点迟钝。你期望的输出是什么?
var CarsWorld = {
cars : ['Honda','toyota','mercedes','jaguar'],
init: function(){
var getData = prompt('Which Car You Wanna Drive','');
for(var i = 0 ; i < this.cars.length ; i++){
$('.wrap').append(' ' + this.cars[i] + ' <br/> ');
}
},
};
CarsWorld.init();
var getData = prompt('Which Car You Wanna Drive','');
var foundCar = "";
for(var i = 0 ; i < this.cars.length ; i++){
$('.wrap').append(' ' + this.cars[i] + ' <br/> ');
//check if this car in the array is the picked car
if(this.cars[i] == getData){
foundCar = getData;
}
}
$('.wrap').append('you picked ' + foundCar);
var CarsWorld = {
cars : ['Honda','toyota','mercedes','jaguar'],
init: function(){
var getData = 'none';
for(var i = 0 ; i < this.cars.length ; i++){
$('.wrap').append(' ' + this.cars[i] + ' <br/> ');
}
var prompter = new CarsWorld.PromptSelect('Which Car You Wanna Drive', function(selected){
getData = selected;
alert('You chose '+ getData +'! ');
//other logic you want to apply on getData
});
prompter.show();
}
};
CarsWorld.PromptSelect = function(message, callback) {
self = this;
this.init = function(){
self.dropdown = '<select id="selectedCar">';
$.each(CarsWorld.cars, function(index, car){
self.dropdown += '<option>' + car + '</option>';
});
self.dropdown += '</select>';
self.markup = [
'<div class="prompt">',
'<div class="title">CarsWorld Prompt</div>',
'<div class="body">',
'<label for="selectedCar">'+ message +':</label>' + this.dropdown + '</div>',
'<div class="footer">',
'<button class="btn-ok">Ok</button>',
'<button class="btn-cancel">Cancel</button>',
'</div>',
'</div>'
].join('');
};
this.show = function(){
$('.overlay').show();
$('body').css('overflow', 'hidden');
self.init();
$('body').append(self.markup);
$('.prompt .btn-ok').on('click', function(){
self.hide();
callback($('#selectedCar').val());
self.destroy();
});
$('.prompt .btn-cancel').on('click', function(){
self.destroy();
});
return self;
};
this.hide = function(){
$('.prompt').hide();
$('.overlay').hide();
$('body').css('overflow', 'auto');
return self;
};
this.destroy = function(){
self.hide();
return self;
};
};
CarsWorld.init();
<div class="wrapper">
<h1> Please choose the car of your type </h1>
<div class="wrap"></div>
<div class="overlay"></div>
</div>
.overlay {
display: none;
position: absolute;
width: 100%;
height: 100%;
z-index: 990;
background: #444;
opacity: 0.5;
top: 0;
left: 0;
}
.prompt {
display: block;
position: absolute;
z-index: 999;
width: 300px;
height: 200px;
top: 50%;
left: 50%;
margin-left: -200px;
margin-top: -100px;
}
.prompt .title {
background: black;
color: white;
height: 10%;
padding: 10px;
border-radius: 3px 3px 0 0;
text-align: center;
font-weight: bold;
}
.prompt .body {
background: white;
height: 60%;
padding: 20px;
}
.prompt .footer {
background: grey;
text-align: right;
padding: 10px;
height: 10%;
border-radius: 0 0 3px 3px;
}