如何在条件下使用即时响应

How to use prompt response in condition

本文关键字:响应 条件下      更新时间:2023-09-26

我对JavaScript非常陌生,正在努力掌握它的窍门。

我创建了一些带有一堆个人信息属性的对象。我试图做到,当网站提示用户输入三个名字中的一个时,在输入其中一个名字时,说出这个人的来源。希望这是有道理的。这是代码。记住,很多这只是我在练习我所知道的。有些东西可能看起来不应该在那里,但嘿,它就是这样。

那么,我如何根据用户的反应来填写我的条件呢?

JS:

//Prompting who's information is needed//
prompt("Who's information do you need? Zack, Steve, or Bill's?");
//Objects here//
var Zack = {
    firstname: 'Zack', 
    lastname: 'Doe',
    address: {
        street: '5555 Timberwood Lane',
        city: 'Hotel',
        state: 'OH'
    }
};
var Steve = {
  firstname: 'Steve',
  lastname: 'Jobs',
  address: {
    street: '1234 Apple Way',
    city: 'Appledom',
    state: 'CA'
    }
};
var Bill = {
  firstname: 'Bill',
  lastname: 'Gates',
  address: {
    street: '5678 Microsoft Ave',
    city: 'Windows',
    state: 'FL'
  }
};
//Just a basic function, input name log Hi + name. Just practice. 
function greet(person){
    console.log('Hi ' + person.firstname);
}
//Functions used to retrieve information from objets Zack, Steve, Bill
function retrieveState(person) {
    console.log (person.firstname + ' is from ' + person.address.street);
}
function retrieveCityState(person) {
  console.log(' and resides in ' + person.address.city + ', ' + person.address.state);
}
//I want to make it so if I enter either, Zack, Bill, or Steve, into the prompt, it will print their information
if () {
  console.log(retrieveState(Zack) + retrieveCityState(Zack));
}
else if () {
  console.log(retrieveState(Steve) + retrieveCityState(Steve));
}
else if () {
  console.log(retrieveState(Bill) + retrieveCityState(Bill));
}
else {
  console.log("That person is unavailable!");
}

工作小提琴

您必须首先将prompt中填写的用户响应保存到一个变量中:

var name = prompt("Who's information do you need? Zack, Steve, or Bill's?");

之后,您可以使用此name来制定您的条件。

if ( name == 'Zack' ) {
    console.log(retrieveState(Zack) + retrieveCityState(Zack));
}else if ( name == 'Bill' ) {
    .....

完整代码:

//Prompting who's information is needed//
var name = prompt("Who's information do you need? Zack, Steve, or Bill's?");
//Objects here//
var Zack = {
    firstname: 'Zack', 
    lastname: 'Doe',
    address: {
        street: '5555 Timberwood Lane',
        city: 'Hotel',
        state: 'OH'
    }
};
var Steve = {
  firstname: 'Steve',
  lastname: 'Jobs',
  address: {
    street: '1234 Apple Way',
    city: 'Appledom',
    state: 'CA'
    }
};
var Bill = {
  firstname: 'Bill',
  lastname: 'Gates',
  address: {
    street: '5678 Microsoft Ave',
    city: 'Windows',
    state: 'FL'
  }
};
//Just a basic function, input name log Hi + name. Just practice. 
function greet(person){
    console.log('Hi ' + person.firstname);
}
//Functions used to retrieve information from objets Zack, Steve, Bill
function retrieveState(person) {
    console.log (person.firstname + ' is from ' + person.address.street);
}
function retrieveCityState(person) {
  console.log(' and resides in ' + person.address.city + ', ' + person.address.state);
}
//I want to make it so if I enter either, Zack, Bill, or Steve, into the prompt, it will print their information
if ( name == 'Zack') {
  console.log(retrieveState(Zack) + retrieveCityState(Zack));
}
else if ( name == 'Steve') {
  console.log(retrieveState(Steve) + retrieveCityState(Steve));
}
else if ( name == 'Bill') {
  console.log(retrieveState(Bill) + retrieveCityState(Bill));
}
else {
  console.log("That person is unavailable!");
}

希望这能有所帮助。

将响应保存到其他应答状态的变量中。

然后你可以让然后调用一个函数来找到答案。

var name = prompt("who's information do you need? Zack,Steve, or Bill's)
function logAddress(person){
    switch(person){
        case 'Zack':
          console.log(retrieveState(Zack) +  retrieveCityState(Zack));
          break;
        case 'Steve':
        console.log(retrieveState(Steve) + retrieveCityState(Steve));   
          break;
        case 'Bill':
        console.log(retrieveState(Bill) + retrieveCityState(Bill));
          break;
        Default:
        console.log('sorry person not found');
    }
}
logAddress(name);

希望对有所帮助