如何使用jquery推送数组中的值

时间:2015-08-24 17:15:44

标签: javascript jquery arrays

尝试将值从现有数组对象推送到temp数组中。这里验证我的现有对象中的值是否为null,然后将其推入temp数组。

但目前这是我得到的输出:["0","abc"]

预期输出应为[{"0":"abc"},{"1":"def"}]

将值推入临时数组后,我需要将其绑定到我的html列表。

这是尝试过的。

JS:

var tempArray = [];
var json = [
  {
    "itemId": "1",
    "prodTitle": "abc",
  },
  {
    "itemId": "2",
    "prodTitle": "def",
  },
  {
    "itemId": "",
    "prodTitle": "",
  }  

]

for (var i=0;i<json.length;i++){
    if(json[i].itemId!=""&&json[i].prodTitle!="")
    tempArray.itemId = json[i].itemId;
    tempArray.prodTitle = json[i].prodTitle;
    tempArray.push(tempArray.itemId,tempArray.prodTitle);
}

console.log(tempArray);

Demo URL

2 个答案:

答案 0 :(得分:1)

你有很多错误,这里是对的

for (var i=0; i<json.length; i++){
    if(json[i].itemId && json[i].prodTitle) {
        tempArray.push(json[i]);
    }
}

你的错误

for (var i=0;i<json.length;i++){
    if(json[i].itemId!=""&&json[i].prodTitle!="") // <-- mistake, braces are needed, because you have 3 lines below
    tempArray.itemId = json[i].itemId; // <-- you are adding property to array
    tempArray.prodTitle = json[i].prodTitle; // <-- still adding
    tempArray.push(tempArray.itemId,tempArray.prodTitle); //<-- pushing strings, not valid object, use like --> {key: value}
}

答案 1 :(得分:1)

您可以使用.filter()方法在没有jQuery的情况下实现此目的:

var json = [{
        "itemId": "1",
        "prodTitle": "abc",
    },
    {
        "itemId": "2",
        "prodTitle": "def",
    },
    {
        "itemId": "",
        "prodTitle": "",
    }];
    
    console.log( json );
    
    var tempArray = json.filter( function( el ) {
        return el.itemId && el.prodTitle;
    });
    
    console.log( tempArray );