Javascript 使用jQuery.map()函数创建自定义对象数组

Javascript 使用jQuery.map()函数创建自定义对象数组,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我有如上所示的表,我想创建一个自定义数组来传递值 目前,我正在使用以下代码行: var arr = $('input[type=text].editfield').map(function () { return this; }).get(); var objArr = jQuery.map(arr, function (i) { return { myDate: i.parentElement.previousSiblin


我有如上所示的表,我想创建一个自定义数组来传递值

目前,我正在使用以下代码行:

var arr = $('input[type=text].editfield').map(function () {
        return this;
    }).get();
    var objArr = jQuery.map(arr, function (i) {
        return {
            myDate: i.parentElement.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.childNodes[0].textContent,
            myValue: i.value
        }
    }).get();
我希望在我的网格中有一个包含所有项的对象数组,分别以日期和值作为属性

但有点不对劲,我无法解决。例如,上面的代码说“jQuery.map(…).get不是函数”


如何更正代码以执行正确的操作?

无需在静态函数上使用.get(),它返回一个正确的数组,而plugin方法返回一个jQuery对象,您必须调用该对象才能获取数组


也不需要使用2个循环

var objArr = $('input[type=text].editfield').map(function (idx, i) {
    //the element selection used here is cruel, if you can share the html used we can help you to clean it
    return {
        // you can try myDate: $(this).parent().prevAll().eq(5).text() - not testable without the html and what is the expected output
        myDate: i.parentElement.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.childNodes[0].textContent,
        myValue: i.value
    };
}).get();

这正是我一直在寻找的答案。非常感谢。也非常感谢您在评论中提出的改进建议。这两种方法对我都很有效。