json和js数据转换
如果你在 JavaScript 中想要将一个对象转换为 JSON 字符串,可以使用 JSON.stringify() 方法。例如:
let data = { name: "Alice", age: 30, city: "New York" };
let jsonData = JSON.stringify(data);
console.log(jsonData);
如果你有一个 JSON 格式的字符串,想要将其转换为 JavaScript 对象,可以使用 JSON.parse() 方法。以下是一个示例:
let jsonData = '{"name": "Alice", "age": 30, "city": "New York"}';
let data = JSON.parse(jsonData);
console.log(data);
pinia
从 Store 解构
为了从 store 中提取属性时保持其响应性,你需要使用 storeToRefs()。它将为每一个响应式属性创建引用。当你只使用 store 的状态而不调用任何 action 时,它会非常有用。请注意,你可以直接从 store 中解构 action,因为它们也被绑定到 store 上:
vue
<script setup>
import { storeToRefs } from 'pinia'
const store = useCounterStore()
// `name` 和 `doubleCount` 是响应式的 ref
// 同时通过插件添加的属性也会被提取为 ref
// 并且会跳过所有的 action 或非响应式 (不是 ref 或 reactive) 的属性
const { name, doubleCount } = storeToRefs(store)
// 作为 action 的 increment 可以直接解构
const { increment } = store
</script>
这三种写法都可以获取store中的值。
// const {hero,team} = storeToRefs(store)
//
// const team = computed(() => {
// return store.team;
// })
const team = ref([]);
watch(store.team,(n)=>{
console.log("nn",n)
team.value = n;
})
极速上手 VUE 3—v-model 的使用变化 - 掘金 (juejin.cn)
watch(inputValue, (newValue) => {
console.log("inputva",newValue)
emit('update:modelValue', newValue); });
对象的遍历
for (let key in props) {
console.log(`props.${key}:`, props[key]);
}
watch
watch 的第一个参数可以是不同形式的“数据源”:它可以是一个 ref (包括计算属性)、一个响应式对象、一个 getter 函数、或多个数据源组成的数组. store是pinia里的store,team是数组,
id是0.监听()=>store.id可以,但是store.id不行.而监听store.team是可以的。
或者解构id也行,变为ref响应的。
const {id} = storeToRefs(store)
//store是pinia里的store,team是数组,id是0.监听()=>store.id可以,但是store.id不行.
watch(()=>store.id, (newId) => {
console.log("nn", newId);
show.value[newId - 1].innerHTML = '添加至队伍';
show.value[newId - 1].disabled = false;
});
watch(store.team,(n)=>{
console.log("watch-store",n)
})
fs.readFileSync
fs.readFileSync 是 Node.js 中的一个同步方法,用于读取文件的内容。
以下是使用 fs.readFileSync 读取文件内容的示例代码:
javascriptCopy Code
const fs = require('fs');
try {
// 同步读取文件内容
const fileContent = fs.readFileSync('file.txt', 'utf-8');
console.log(fileContent);
} catch (err) {
console.error(err);
}
在上面的代码中,fs.readFileSync 方法被调用来读取名为 file.txt 的文件。第一个参数是文件的路径,第二个参数指定了文件的编码格式(这里使用 UTF-8)。读取的内容将被存储在 fileContent 变量中,并在控制台上输出。
请注意,使用 fs.readFileSync 方法会阻塞代码执行,直到文件读取完成。这意味着在文件读取期间,程序无法执行其他任务。因此,在处理大型文件或在需要并发执行的情况下,建议使用异步的 fs.readFile 方法,以避免阻塞代码的执行。
JSON
JSON.parse 和 JSON.stringify 是用于在 JavaScript 中处理 JSON 数据的两个常用方法。
JSON.parse: 用于将 JSON 格式的字符串解析为 JavaScript 对象。
示例:
const jsonString = '{"name": "Alice", "age": 30}';
const jsonObject = JSON.parse(jsonString);
console.log(jsonObject.name); // 输出: Alice
JSON.stringify: 用于将 JavaScript 对象转换为 JSON 格式的字符串。
示例:
javascriptCopy Code
const obj = { name: 'Bob', age: 25 };
const jsonString = JSON.stringify(obj);
console.log(jsonString); // 输出: {"name":"Bob","age":25}
通常情况下,你会在以下情况使用它们:
- 当从服务器或其他地方获取到 JSON 格式的字符串时,你需要将其转换为 JavaScript 对象进行进一步处理时,可以使用
JSON.parse。 - 当你需要将 JavaScript 对象转换为 JSON 格式的字符串,比如将数据发送给服务器或保存到本地存储时,可以使用
JSON.stringify。
总的来说,JSON.parse 用于将 JSON 字符串转换为 JavaScript 对象,而 JSON.stringify 用于将 JavaScript 对象转换为 JSON 字符串。这两个方法在处理 JSON 数据时非常有用。
第二题-三行情书
单行省略和多行省略; 单行 span:
display:block;
overflow:hidden;
text-over:ellipsis;
white-space:nowrap;
多行省略p:
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:3;
overflow:hidden;
外星人通讯
将字符串拆分为三个一组的数组:
let aliens =[];
for(let i=0;i< messages.length;i+=3){
aliens += messages.substr(i,3)
}
const stringArray = ["abcdef", "ghijkl", "mnopqr", "stuvwx"];
const splitAndMerge = (arr) => {
const result = arr.map((str) => {
const subStrings = [];
for (let i = 0; i < str.length; i += 3) {
subStrings.push(str.slice(i, i + 3));
}
return subStrings.join('');
});
return result.join('');
};