js如何快速提取数组对象里面的所有url,组成新数组
时间: 2024-04-13 16:27:46 浏览: 22
在JavaScript中,你可以使用`map`函数结合正则表达式来提取数组对象中的所有URL,并将它们组成一个新的数组。以下是一个示例代码:
```javascript
// 假设你的数组对象为arr
const arr = [
{ id: 1, url: 'https://example.com/page1' },
{ id: 2, url: 'https://example.com/page2' },
{ id: 3, url: 'https://example.com/page3' }
];
// 使用map函数提取url
const urls = arr.map(obj => obj.url);
console.log(urls);
```
上述代码会将原始数组对象中的所有URL提取出来,并组成一个新的数组`urls`。你可以根据实际情况修改代码来适应你的数组对象结构和需求。
相关问题
js将数组导出为csv并设置换行为crlf
你可以使用以下代码将数组导出为csv文件并设置换行为crlf:
```javascript
function convertToCSV(arr) {
const header = Object.keys(arr[0]).join(',');
const csv = arr.map(row => Object.values(row).join(',')).join('\r\n');
return header + '\r\n' + csv;
}
const data = [
{ name: 'John', age: 30, city: 'New York' },
{ name: 'Mary', age: 25, city: 'Los Angeles' },
{ name: 'Bob', age: 40, city: 'Chicago' }
];
const csvContent = convertToCSV(data);
const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
const link = document.createElement("a");
if (link.download !== undefined) {
const url = URL.createObjectURL(blob);
link.setAttribute("href", url);
link.setAttribute("download", "data.csv");
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
```
在这个例子中,我们定义了一个`convertToCSV`函数,它将一个包含对象的数组转换为csv格式的字符串。CSV文件的第一行是标题,后面的行是数据。我们使用`Object.keys()`和`Object.values()`函数来提取标题和数据,并使用`join()`函数将它们组合成csv格式的行。在最后,我们将csv字符串放入一个Blob对象,并创建一个链接来下载它。注意到我们使用了`\r\n`来表示换行,这是Windows操作系统中的换行符,也就是CRLF。
uniapp中a页面将数组传到b页面,b页面将接收的数组的对象拿出来
在uni-app中,你可以使用页面跳转时传递参数的方式将数组传递到目标页面。在发送页面(a页面)中,你可以使用`uni.navigateTo`或`uni.redirectTo`方法跳转到目标页面,并通过`query`参数传递数组。例如:
```javascript
// 在a页面中跳转到b页面,并传递数组参数
uni.navigateTo({
url: '/pages/b/b?people=' + encodeURIComponent(JSON.stringify(people))
})
```
在接收页面(b页面)中,你可以通过`this.$route.query`访问接收到的数组。例如:
```javascript
export default {
mounted() {
const people = JSON.parse(decodeURIComponent(this.$route.query.people))
console.log(people)
const names = people.map(person => person.name)
console.log(names)
const totalAge = people.reduce((sum, person) => sum + person.age, 0)
console.log(totalAge)
const youngPeople = people.filter(person => person.age < 30)
console.log(youngPeople)
}
}
```
需要注意的是,`this.$route.query`中的参数是以字符串的形式传递的,因此你需要使用`JSON.parse`方法将其转换为JavaScript对象。在转换之前,你可能需要使用`encodeURIComponent`方法对数组进行编码,以防止出现URL编码问题。
希望这些例子能够帮助你理解如何在uni-app中将数组传递到另一个页面,并从中提取对象。