JS取出localstorage里面的单选题字符串str 用split方法切割str,用*号切割,切割后生成了一个字符串数组a 遍历数组a,将数组的每一个元素格式化成对象后放到ch里面,用4行代码实现
时间: 2024-03-09 12:50:41 浏览: 30
好的,以下是用 4 行代码实现的代码:
```javascript
const str = localStorage.getItem('singleChoice');
const ch = str.split('*').map(item => {
const [question, ...optionsAndAnswer] = item.split('|');
const [answer, ...options] = optionsAndAnswer.reverse();
return { question, options: options.reverse(), answer: parseInt(answer) };
});
```
这里使用了 `map()` 方法来遍历数组 `a`,将每个元素格式化成对象,并将该对象放入 `ch` 数组中。
首先,我们使用 `split()` 方法将字符串按照 `*` 号进行切割,并将结果保存在 `a` 数组中。然后,使用 `map()` 方法对 `a` 数组进行遍历,对于每个元素都执行以下操作:
- 使用 `split()` 方法将元素按照 `|` 号进行切割,得到包含题目、选项和答案的数组 `optionsAndAnswer`。
- 将 `optionsAndAnswer` 数组的最后一个元素(即答案)弹出,并将剩余的元素反转,得到选项数组 `options`。
- 将题目字符串和选项数组 `options` 以及答案转换成数字后组成的对象返回。
最终,我们得到了与上一个回答中相同的结果,但是使用了更简洁的代码。
相关问题
JS取出localstorage里面的单选题字符串str 用split方法切割str,用*号切割,切割后生成了一个字符串数组a 遍历数组a,将数组的每一个元素格式化成对象后放到ch里面
好的,以下是代码实现:
```javascript
// 从localstorage中获取单选题字符串
const str = localStorage.getItem('singleChoice');
// 使用*号切割字符串,生成字符串数组a
const a = str.split('*');
// 遍历数组a,将每个元素格式化成对象后放到ch数组中
const ch = [];
a.forEach(item => {
const obj = {};
const arr = item.split('|');
obj.question = arr[0];
obj.options = arr.slice(1, 5);
obj.answer = parseInt(arr[5]);
ch.push(obj);
});
```
上述代码中,我们首先通过 `localStorage.getItem()` 获取到了单选题的字符串。然后使用 `split()` 方法将字符串按照 `*` 号进行切割,得到了字符串数组 `a`。
接着,我们遍历 `a` 数组,对于每个元素都使用 `split()` 方法将其按照 `|` 号进行切割。切割后得到的数组中,第一个元素是题目,后面的四个元素是选项,最后一个元素是答案。将这些信息组成一个对象,并将该对象放入 `ch` 数组中。
经过上述操作后,我们就可以通过 `ch` 数组获取到所有单选题目的信息了。
JS取出localstorage里面的单选题字符串str //第二步:用split方法切割str,用*号切割,切割后生成了一个字符串数组a //第三步:遍历数组a,将数组的每一个元素格式化成对象后放到ch里面
以下是一个简单的实现:
```javascript
// 从 localStorage 中获取字符串
let str = localStorage.getItem('singleChoice');
// 用 * 号切割字符串,生成数组
let a = str.split('*');
// 定义一个空数组,用来存放格式化后的对象
let ch = [];
// 遍历数组 a
a.forEach(function(item) {
// 切割每个元素,生成选项数组
let choices = item.split('|');
// 构造一个对象,包含题目和选项
let obj = {
question: choices[0],
options: choices.slice(1)
};
// 将对象添加到 ch 数组中
ch.push(obj);
});
// 输出 ch 数组
console.log(ch);
```
在这个实现中,我们首先使用 `localStorage.getItem()` 方法从 `localStorage` 中获取单选题字符串。接着,我们使用 `split()` 方法将字符串切割成一个数组 `a`。
然后,我们遍历 `a` 数组,使用 `split()` 方法将每个元素切割成一个选项数组。接着,我们构造一个对象,包含题目和选项,将其添加到 `ch` 数组中。
最后,我们遍历完 `a` 数组后,输出 `ch` 数组。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)