小编suu*_*iam的帖子

过滤嵌套对象

我收到一个看起来像这样的对象:

 this.tokensData = {
    O: {
        id: 0,
        name: value1,
        organization: organization1,
        ...,
       },
    1: {
        id: 1,
        name: value1,
        organization: organization1,
        ...,
        },
    2: {
        id: 2,
        name: value2,
        organization: organization2,
        ...,
        },
    ...
   }
Run Code Online (Sandbox Code Playgroud)

我想要筛选id和删除Objectid匹配的id我从接收store。到目前为止我尝试过的:

const filteredObject = Object.keys(this.tokensData).map((token) => {
  if (this.$store.state.id !== this.tokensData[token].id) {
    return this.tokensData[token];
  }
});
Run Code Online (Sandbox Code Playgroud)

这取代了Objectwith undefined- 这对我有用,但显然不理想。任何帮助深表感谢!

javascript object filter

7
推荐指数
1
解决办法
2073
查看次数

Jest 和 ESLint:Expect 必须有相应的匹配器调用

Expect must have a corresponding matcher call - jest/valid-expect在这个循环的第一行收到 ESLint 错误,我正在检查匹配的正则表达式 ( .toMatch)。

const dateRegex = /^([1-9]|1[012])[- \\/.]([1-9]|[12][0-9]|3[01])[- \\/.](19|20)\d\d/

expect(getPerformancePerUserPerDay(input).forEach((item, index) => {
  expect(item['Date']).toMatch(dateRegex)
}))
Run Code Online (Sandbox Code Playgroud)

不确定我做错了什么,因为根据他们的文档,用法似乎是正确的。这可能是一个错误吗?

javascript eslint jestjs

6
推荐指数
1
解决办法
7139
查看次数

Vue.js:EventBus 被多次调用

我正在构建“撤消删除”操作的逻辑。为此,我使用事件总线将事件发送到两个不相关的组件,如下所示:

Undo.vue:

EventBus.$emit(`confirm-delete-${this.category}`, this.item.id);
Run Code Online (Sandbox Code Playgroud)

事件(this.category)的名称基于来自父级(ConfirmDeleteModal.vue)的道具,然后按如下方式接收:

CategoryA.vue

created() {
   EventBus.$on('confirm-delete-category-a', (id) => {
     this.confirmDelete(id);
   });
},
Run Code Online (Sandbox Code Playgroud)

CategoryB.vue

created() {
    EventBus.$on('confirm-delete-category-b', (id) => {
      this.confirmDelete(id);
    });
},
Run Code Online (Sandbox Code Playgroud)

我的问题:由于某种原因,事件category-a被发出和接收两次category-b工作正常)。我必须confirm-event不断地监听,因此在收到事件或仅监听后我无法删除事件监听器$once。有什么想法可以解决这个问题(也许使用 Vuex)?谢谢!

javascript vue.js vuex vue-events

5
推荐指数
1
解决办法
3011
查看次数

Vue:在哪里调用 API?

我目前正在学习 Vue,我正在构建一个电影数据库应用程序,用户可以在其中查看从外部 API 获取的电影,并按热门和即将上映的电影进行排序。我必须为两个类别调用不同的 URL,我想知道我是否应该在每个组件或单独的第三个组件中执行此操作,其中存储了所有获取的数据?将 Vuex 用于这样的小型应用程序是否有意义,或者还有其他最佳实践吗?谢谢!

vue.js

4
推荐指数
1
解决办法
1345
查看次数

Object.fromEntries 的替代方案?

我收到object这样的消息:

this.data = {
    O: {
        id: 0,
        name: value1,
        organization: organization1,
        ...,
       },
    1: {
        id: 1,
        name: value1,
        organization: organization1,
        ...,
        },
    2: {
        id: 2,
        name: value2,
        organization: organization2,
        ...,
        },
    ...
   } 
Run Code Online (Sandbox Code Playgroud)

然后,我过滤id并删除与我从商店收到的匹配的Object内容,如下所示:idid

  filterOutDeleted(ids: any[], data: object,) {
    const remainingItems = Object.fromEntries(Object.entries(data)
      .filter(([, item]) => !ids.some(id => id === item.id)));

    const rows = Object.keys(remainingItems).map((item) => remainingItems[item]);
    return rows;
  }
Run Code Online (Sandbox Code Playgroud)

不幸的是,我在构建说明时遇到错误,并且目前Property 'fromEntries' does not exist on type 'ObjectConstructor' …

javascript object typescript

4
推荐指数
1
解决办法
7228
查看次数

合并主机将所有更改添加到我的分支

我正在一个分支上工作,我更改了 5 个左右的文件。在这样做的同时,其他人已经将超过 100 个文件中的更改推送到 master。现在,在我的分支机构工作时,我想merge master时不时地去我当地的分支机构。我会这样做:

git checkout master
git pull
git checkout my-branch
git merge master
git push

但现在,由于某种原因,master 上其他人更改的所有文件都添加到了我的更改中。所以如果我真的push在之后merge master,它会显示我更改了 >100 个文件,而不是仅仅 5 个。我做错了什么?谢谢。

git github

4
推荐指数
1
解决办法
5322
查看次数

JS:将数字返回指定的10的幂

我正在解决一个问题,要求我返回一个舍入为10的指定幂的数字。例如:

1234, specified power = 2 => 1200
1234, specified power = 3 => 1000
Run Code Online (Sandbox Code Playgroud)

我确实找到了解决此功能问题的方法:

const roundToPower = (num, pow) => {
    return Math.round(num / Math.pow(10, pow)) * Math.pow(10,pow)
};
Run Code Online (Sandbox Code Playgroud)

但是,我不确定它如何以及为什么起作用。

有人可以为我分解吗?谢谢!

javascript math

1
推荐指数
1
解决办法
60
查看次数

标签 统计

javascript ×5

object ×2

vue.js ×2

eslint ×1

filter ×1

git ×1

github ×1

jestjs ×1

math ×1

typescript ×1

vue-events ×1

vuex ×1