仅IE中的JS数组推送错误

时间:2017-03-24 17:26:09

标签: javascript arrays json

我有以下脚本,它基本上从"数据"中提取每个值。传递数组并返回json值。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
chrome_path=r"C:\Users\Priyanshu\Downloads\Compressed\chromedriver_win32\chromedriver.exe"
driver=webdriver.Chrome(chrome_path)
driver.get("https://www.flipkart.com/?")
search = driver.find_element_by_name('q')
search.send_keys("laptop")
search.send_keys(Keys.RETURN)
driver.find_element_by_xpath(""" //*[@id="container"]/div/div[2]/div[2]/div/div[2]/div[2]/div/section/ul/li[2]""").click()

所以在这种情况下"数据"在我的控制台日志中返回:

  

Array [Object,Object]

其中包含以下对象 - >价值等,在某些情况下,我的到期"日期值是空白,但仍然可以在Firefox和Chrome中正常工作。

Array Details

在我的情况下问题似乎完全与IE 11有关....我一直在IE中遇到以下错误,它与" push"以某种方式附加到我的阵列。我不知道这是一个语法错误还是我尝试追加到我的阵列的方式,但显然我做错了。我的目的只是以json格式返回第二个数组,因此可能是一种更简单的方法。

  

SCRIPT1003:预期':'

1 个答案:

答案 0 :(得分:2)

评论提供了IE错误,这是一个可以在IE和Chrome上运行的示例代码:

function parsejson(data) {
    var temp2 = []; // this syntax might be prefered to create a new array

    if (data) {
        temp2 = data.map(function(element) { 
            return {
                vproductid: element.productid,
                vproductname: element.product_name,
                vexpirydt: element.expiry
            };
        });
    }
    console.log(temp2);
    return temp2;
}

var sampleData = [{
    productid: 1,
    product_name: 'a',
    expiry: 'Today',
    someThingelse: '',
}, {
    productid: 2,
    product_name: 'b',
    expiry: 'Today',
    someThingelse: '',
}, {
    productid: 3,
    product_name: 'c',
    expiry: 'Today',
    someThingelse: '',
}];


parsejson(sampleData);