JavaScript函数,多个语句无法正常工作

时间:2017-09-20 12:06:37

标签: javascript

我正在使用这个javascript函数。

<Spinner
    android:id="@+id/settingsSetSpinner"
    android:background="@color/j3PreferencesBackground"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/settingsPickerTitle"
    android:defaultValue="0"
    android:entries="@array/import_export_locations"
    />

每次返回NULL ..我认为执行循环后。 JavaScript编译器转到下一个语句并返回NULL,我想如果,如果语句在循环中为true则返回name并且不返回NULL。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

你可以这样试试。

var StaffUsers = {"1":"user1","2":"user2"};
get_staff_name = function(id) {
  if (typeof StaffUsers === "object") {
    if(StaffUsers.hasOwnProperty(id)){
      return StaffUsers[id];
    }
  }
}
console.log(get_staff_name(1))

答案 1 :(得分:0)

这里的回报是问题所在:

$.each(StaffUsers, function(staff_id, name){
    if ( Number(staff_id)==Number(id) ) {
        return name;
    }
});

它返回$ .each回调函数而不是你的get_staff_name函数。你需要使用普通的js循环,回调或其他东西..

答案 2 :(得分:0)

此:

return name;

不会从此功能返回:

function(id) {

这个返回:

function(staff_id, name){

如果您需要从&#34;循环中返回&#34;那么我想一个简单的方法就是只用一个普通的循环代替$.each()。像这样:

for (var i = 0; i < StaffUsers.length; i++) {
    if (Number(i) == Number(id)) {
        return StaffUsers[i];
    }
};