JQuery问题打印对象到console.log

JQuery issue printing object to console.log

本文关键字:console log 对象 问题 打印 JQuery      更新时间:2023-09-26

我编写了一个函数,它遍历数组并在找到匹配项时返回对象及其值。

不知何故,当我用它的参数调用函数时,它总是在浏览器控制台上打印未定义。

不确定我错过了什么,但在函数中,当我console.log(v)时,我得到了值,但在调用函数时却没有。

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代码:

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)

这是我的JSFiddler链接。

你忘了回来。

你只在过滤器的回调中使用返回,但这只适用于.filter本身。

如果你想获得经过过滤的数据,你需要返回经过过滤的数据

试试这样

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

JSFIDDLE