gpt4 book ai didi

javascript - 如何创建嵌套 For 循环以在 Nightmare javascript 代码中输入数据

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:52 24 4
gpt4 key购买 nike

我有两个 JSON 文件。我想比较两个文件中的 JSON 对象; json1 和 json2。如果第一个 json 文件 (json1) 文件中的数组中有一个对象在第二个 json 文件 (json2) 中不存在,我想通过下面的 Nightmare js 代码传递它,然后使用 .push() 将其推送到第二个 json 文件。

<小时/>

JS 代码:

var Nightmare = require('nightmare');
var nightmare = Nightmare({
show: true
});
var json1 = require('./json1.json')
var json2 = require('./json2.json')

for (var i = 0; i < json1.length; i++) {
for (var c = 0; c < json2.length; c++) {
if (json1[i] !== (json2[c])) {
console.log(json1[i])
return nightmare
.goto(json1[0].searchOn)
.insert('.gLFyf', json1[0].searchText)
.wait(3000)
.end()
.evaluate((json2, json1) => {
return json2[c].push(json1[i])
}, json2, json1)
.then()
} else {
console.log('End!')
}
}
}

JSON1 数据

[
{
"searchOn": "https://www.google.com",
"searchText": "I love google"
},
{
"searchOn": "https://www.google.com",
"searchText": "I'm hungry, where can I eat?'"
}
]

JSON2 数据

[
{
"searchOn": "https://www.google.com",
"searchText": "What's the date?"
},
{
"searchOn": "https://www.google.com",
"searchText": "What is the internet"
},
{
"searchOn": "https://www.google.com",
"searchText": "What's the weather like today?"
}
]

但是,Js 代码给了我这个错误:UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'push' of undefined

该代码也不会在循环中的所有对象上执行 Nightmare js 代码(仅单独执行第一项的任务。

请建议我如何修复这些错误。

亲切的问候。

最佳答案

您无法通过索引迭代对象。这适用于数组,数组是一种对象类型,其键映射到从 0 开始的索引。如果要迭代任何对象,请使用 Object.keys 或 for-in 运算符。您可以了解如何同时执行这两项操作 here .

推送也是如此,它是 array method

关于javascript - 如何创建嵌套 For 循环以在 Nightmare javascript 代码中输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53937134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com