第二期模拟

69 阅读4分钟

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) image.png

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.parseJSON.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}

通常情况下,你会在以下情况使用它们:

  1. 当从服务器或其他地方获取到 JSON 格式的字符串时,你需要将其转换为 JavaScript 对象进行进一步处理时,可以使用 JSON.parse
  2. 当你需要将 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('');
};

拼出一个未来

image.png