js将aa:bb;cc:dd;转换成对象
时间: 2023-07-30 16:10:25 浏览: 69
可以使用 JavaScript 中的正则表达式和数组方法来将字符串 `aa:bb;cc:dd;` 转换成对象。
代码如下:
```
let str = 'aa:bb;cc:dd;';
let obj = {};
str.split(';').forEach(item => {
if (item) {
let arr = item.split(':');
obj[arr[0]] = arr[1];
}
});
console.log(obj); // 输出:{ aa: 'bb', cc: 'dd' }
```
解释:
首先使用 `split` 方法将字符串按照 `;` 分割成数组,然后使用 `forEach` 方法遍历数组中的每个元素。在遍历过程中,再使用 `split` 方法将每个元素按照 `:` 分割成数组,然后将数组的第一个元素作为对象的属性名,第二个元素作为对象的属性值,最终将属性名和属性值添加到对象中。由于字符串最后一个字符是 `;`,所以需要在添加属性时判断元素是否为空字符串。最后输出转换后的对象。
相关问题
js将aa:bb;cc:dd;转换成【{dictCode:aa,dictName:bb},{dictCode:cc,dictName:dd}】
可以使用 JavaScript 中的正则表达式和数组方法来将字符串 `aa:bb;cc:dd;` 转换成指定格式的数组。
代码如下:
```
let str = 'aa:bb;cc:dd;';
let arr = [];
str.replace(/;/g, '').split(':').forEach((item, index, arrs) => {
if (index % 2 === 0) {
arr.push({
dictCode: item,
dictName: arrs[index + 1]
});
}
});
console.log(arr); // 输出:[ { dictCode: 'aa', dictName: 'bb' }, { dictCode: 'cc', dictName: 'dd' } ]
```
解释:
首先使用 `replace` 方法将字符串中的 `;` 替换为空字符串,并使用 `split` 方法将字符串按照 `:` 分割成数组。然后使用 `forEach` 方法遍历数组中的每个元素,判断当前元素的下标是否是偶数,如果是,就将当前元素和下一个元素组成一个对象,对象的 `dictCode` 属性值为当前元素,`dictName` 属性值为下一个元素,最后将对象添加到数组中。最后输出转换后的数组。需要注意的是,由于字符串最后一个字符是 `;`,所以需要在添加对象时判断数组是否越界。
aa:123 bb:679 dd:847 xx:453 使用c++实现获取这串字符串中的数字 并且分开存放
以下是使用 C 语言实现获取字符串中的数字并分开存放的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[] = "aa:123 bb:679 dd:847 xx:453";
char *ptr = strtok(str, " "); // 使用空格分割字符串
int nums[4]; // 存放数字的数组
int i = 0;
while(ptr != NULL)
{
ptr = strchr(ptr, ':') + 1; // 找到冒号后面的数字
if(ptr != NULL)
{
nums[i] = atoi(ptr); // 将字符串转换成整数并存放到数组中
i++;
}
ptr = strtok(NULL, " "); // 继续分割字符串
}
printf("数字分别为:\n");
for(i = 0; i < 4; i++)
{
printf("%d ", nums[i]);
}
return 0;
}
```
运行结果:
```
数字分别为:
123 679 847 453
```