加入 Playwright/Node/JS 中的评估值数组
Join arrays of evaluated values in Playwright/Node/JS
我正在尝试使用 Node.js 中的 Playwright 抓取具有多个搜索结果的页面。
刮掉不同的单个元素很容易。但是如何将它们连接到一个数组中,以便将各个元素连接到一个节点中?
这是我的:
var myArray = [];
const titles = await page.$$eval('//h3', elements => elements.map(el => el.textContent.trim().split('\n')[0]))
const prices = await page.$$eval('.price', elements => elements.map(el => el.textContent.trim().split('\n')[0]))
myArray.push(String(titles) + String(prices));
console.log(titles); gets me this : ['ProductTitleOne', 'ProductTitleTwo']
console.log(prices); gets me this : ['456','123']
console.log(myArray); results in this ['ProductTitleOne', 'ProductTitleTwo','456','123']
我想要这样的东西:[{'ProductTitleOne','456'}, {'ProductTitleTwo','123'}]
(或者这个:{{'ProductTitleOne','456'}, {'ProductTitleTwo','123'}})
以下尝试也失败了:
const combined1 = [].concat(titles, prices);
let get_all = [...titles, ...prices];
研究过映射、数组、索引,也看过很多 Whosebug 问题,但仍然不知道如何解决这个问题。如果有人对如何解决这个问题有一些指示,非常感谢。
你可以这样做
const result = titles.map((title, index)=> ({ title, price: prices[index]}));
我正在尝试使用 Node.js 中的 Playwright 抓取具有多个搜索结果的页面。 刮掉不同的单个元素很容易。但是如何将它们连接到一个数组中,以便将各个元素连接到一个节点中?
这是我的:
var myArray = [];
const titles = await page.$$eval('//h3', elements => elements.map(el => el.textContent.trim().split('\n')[0]))
const prices = await page.$$eval('.price', elements => elements.map(el => el.textContent.trim().split('\n')[0]))
myArray.push(String(titles) + String(prices));
console.log(titles); gets me this : ['ProductTitleOne', 'ProductTitleTwo']
console.log(prices); gets me this : ['456','123']
console.log(myArray); results in this ['ProductTitleOne', 'ProductTitleTwo','456','123']
我想要这样的东西:[{'ProductTitleOne','456'}, {'ProductTitleTwo','123'}]
(或者这个:{{'ProductTitleOne','456'}, {'ProductTitleTwo','123'}})
以下尝试也失败了:
const combined1 = [].concat(titles, prices);
let get_all = [...titles, ...prices];
研究过映射、数组、索引,也看过很多 Whosebug 问题,但仍然不知道如何解决这个问题。如果有人对如何解决这个问题有一些指示,非常感谢。
你可以这样做
const result = titles.map((title, index)=> ({ title, price: prices[index]}));