javascript - 将逗号分隔的字符串推送到对象中的新属性
问题描述
我正在尝试遍历字符串对象,偶尔它会返回一些逗号分隔的列表。我想将它们拆分为它们自己的属性。
目前我得到这个
emailList = {
0: "email-1@site.com",
1: "email-2@site.com,email-3@site.com,email-4@site.com,email-5@site.com",
2: "email-6@site.com",
3: "email-7@site.com,email-8@site.com"
}
但是需要这样
emailList = {
0: "email-1@site.com",
1: "email-2@site.com",
2: "email-3@site.com",
3: "email-4@site.com",
4: "email-5@site.com",
5: "email-6@site.com",
6: "email-7@site.com",
7: "email-8@site.com",
}
我的想法是尝试类似
var listSplt = '';
for(key in emailList){
listSplt += emailList[key].split(',');
}
但这给了我undefinedemail-1@site.comemail-2@site.com,email-3@site.com,email-4@site.com,email-5@site.comemail-6@site.comemail-7@site.com,email-8@site.com
在开始时得到未定义而在 1 之后没有逗号的地方。
我也觉得这种将其变回对象的解决方案会有点费力或过于复杂。我需要注意的另一个问题是我不能使用 ES6,因为我运行它的系统不是最新的。
解决方案
function splitByComma(obj) {
let result = {}
let index = 0
for(let key in obj) {
const item = obj[key]
const splitItem = item.split(“,”)
splitItem.forEach((it)=> {
if(it) {
result[index] = it
index++
}
})
}
return result
}
obj
您的输入对象在哪里。
非 ES6:
function splitByComma(obj) {
var result = {}
var index = 0
for(let key in obj) {
var item = obj[key]
var splitItem = item.split(“,”)
for(var i = 0; i < splitItem.length; i++) {
const it = splitItem[i]
if(it) {
result[index] = it
index++
}
})
}
return result
}
推荐阅读
- python - 加载这种边缘列表文件格式的正确方法是什么?
- php - SearchFacesByImage 中的 Rekognition InvalidS3ObjectException 错误(400 Bad Request.. 无法从 S3 获取对象元数据)
- object - 在对象赋值解构Javascript中使用冒号
- postgresql - 无法访问 Postgresql 上的数据库?
- regex - 在 Python 中验证一组日期的方法
- c# - 如何使用 tcp 服务器在 c# 和 python 中交换命令
- scala - 数据框完全外连接中的 OR 条件降低了性能 spark/scala
- python - 将自定义函数添加到 Python 中的现有类
- java - 使用java中的startsWith方法删除LinkedList元素
- android - 使用 IONIC 3 + CORDOVA 在 SQLite 中创建数据库