質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

574閲覧

TypeScript(Nuxt.js)でObject.keys().someを使う際の書き方

sauzar18

総合スコア163

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2019/05/31 04:52

編集2019/05/31 05:04

TypeScriptでsomeを使った絞り込みの処理をしようとしていますが、
エラーが発生し、解決方法がわかりません。
また、学び始めたばかりなので書き方が違うなどのご指摘もあれば
ご教示頂ければと思います。

エラー内容

bash

1Argument of type '(key: string) => true | undefined' is not assignable to parameter of type '(value: string, index: number, array: string[]) => boolean'. 2 Type 'true | undefined' is not assignable to type 'boolean'. 3 Type 'undefined' is not assignable to type 'boolean'.

ソース

ts

1import { Component, Vue, Prop } from 'vue-property-decorator' 2@Component 3export default class AdminList extends Vue { 4 // props 5 @Prop({ type: Array, required: true }) 6 companies!: {key: string}[] 7 @Prop({ type: Array, required: true }) 8 sortBar!: string[] 9 // data 10 list: {key: string}[] = this.companies 11 searchWord: string = '' 12 selectCategory: string = '' 13 count: number = 10 14 sort = { key: '', isAsc: false } 15 formError: string = '' 16 17 // computed 18 get sortedItems() { 19 let list: any = this.list 20 const filterWord = this.searchWord 21 if (this.sort.key) { 22 list.sort((a, b) => { 23 a = a[this.sort.key] 24 b = b[this.sort.key] 25 return (a === b ? 0 : a > b ? 1 : -1) * (this.sort.isAsc ? 1 : -1) 26 }) 27 } 28 if (filterWord) { 29 list = list.filter(function (row) { 30 if (filterWord) { 31 return Object.keys(row).some(function (key) { 32 if (String(row[key]).toLowerCase().indexOf(filterWord) > -1) { 33 return true 34 } 35 }) 36 } 37 return row 38 }) 39 } 40 return list.slice(0, this.count) 41 } 42}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

javascript

1 return Object.keys(row).some(function (key) { 2 if (String(row[key]).toLowerCase().indexOf(filterWord) > -1) { 3 return true 4 } 5 return false; // 6 })

投稿2019/05/31 05:23

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sauzar18

2019/05/31 05:32

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問