简体   繁体   English

jQuery将打印对象发布到console.log

[英]JQuery issue printing object to console.log

I have written a function that iterates over array and returns object and its value if a match is found. 我编写了一个函数,该函数遍历数组,如果找到匹配项,则返回对象及其值。

Somehow, when I call the function with its arguments, it always prints undefined on browser console. 不知何故,当我使用其参数调用该函数时,它始终在浏览器控制台上未定义地打印。

Not sure what I am missing, but in function, when I console.log(v), I get the values, but not when calling the function. 不知道我缺少什么,但是在函数中,当我console.log(v)时,我得到了值,但是在调用函数时却没有。

HTML code: HTML代码:

<div class="accounts">
1<input name="1" value="" /><br>
2<input name="2" value="" /><br>
3<input name="3" value="" /><br>
4<input name="4" value="" /><br>
5<input name="5" value="" /><br>
6<input name="6" value="" /><br>
7<input name="7" value="" /><br>
8<input name="8" value="" /><br>
9<input name="9" value="" /><br>
10<input name="10" value="" /><br>
11<input name="11" value="" /><br>
</div>

JQuery code: jQuery代码:

var vendor = [];
vendor = [{"vendor_id":"1","vendorname":"Coke","account_no":"34534554"},{"vendor_id":"2","vendorname":"Pepsi","account_no":"34634532"},{"vendor_id":"3","vendorname":"Dr. Pepper \/ 7 Up","account_no":"56754568"},{"vendor_id":"4","vendorname":"Frito Lay","account_no":"676554544"},{"vendor_id":"5","vendorname":"Blue Bunny","account_no":"678476543"},{"vendor_id":"6","vendorname":"Yummy","account_no":"9987654"},{"vendor_id":"7","vendorname":"Ork Farm","account_no":"23456767"},{"vendor_id":"8","vendorname":"Borden","account_no":"89765432"},{"vendor_id":"9","vendorname":"Highland","account_no":"2345678987"},{"vendor_id":"10","vendorname":"Nesquek","account_no":"798654324"}];

var getVendors = [];
$('.accounts input').each(function(){ 
    getVendors.push($(this).attr('name'));
});

function vendorAcctCheck (array, value) {
    array.filter(function(v) {
        if (v.vendor_id == value) {
            // console.log(v);
            return v;
        };
    })
    // return false;
}

var vendorData = vendorAcctCheck(vendor, "2");

console.log(vendorData)

Here is my JSFiddler link . 这是我的JSFiddler 链接

You forget to return. 你忘了回来。

You are using return only in filter's callback but that'll work only for .filter itself. 您仅在filter的回调中使用return,但这仅对.filter本身有效。

If you wanna to get filtered data,you have return the filtered data 如果您想获取过滤后的数据,请返回过滤后的数据

Try like this 这样尝试

function vendorAcctCheck (array, value) {
   return array.filter(function(v) {
        if (v.vendor_id == value) {
            // console.log(v);
            return v;
        };
    })
    // return false;
}

JSFIDDLE JSFIDDLE

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM