2017-04-14 11 views
-3

私はオブジェクトの配列を持っています。配列全体をループし、各オブジェクトの同じキーにアクセスし、文字列プロパティを別の配列と比較して、文字列がそれと単語を共有しているかどうかを確認する必要があります。そうした場合:何かをしてください。どのようにオブジェクトの配列をループし、それぞれからキーを取得しますか? (角2)

Lodash _.differenceメソッドを使用して、ハードコードされた文字列との配列を正常に比較できます。しかし、ループを使って各オブジェクトのキーから文字列を取得する方法については混乱しています。私はそれぞれを試しましたが、各要素のキーを取得できないようです。

これを達成する最善の方法は何ですか?

ありがとうございます。コンソールで

コンポーネント

import { Component, OnInit, NgZone, ViewChild } from '@angular/core'; 
import { RouterModule, Router } from "@angular/router"; 
import { NewsApiService } from '../service/news-api.service'; 
import { Http, Response } from '@angular/http'; 
import { MapComponent } from '../map/map.component'; 

import * as _ from "lodash"; 

@Component({ 
    selector: 'app-main', 
    templateUrl: './main.component.html', 
    styleUrls: ['./main.component.css'] 
}) 
export class MainComponent implements OnInit { 

    private bbcJSON: any; 
    private alJazeeraJSON: any; 
    private bingWorldJSON: any; 
    private bingPoliticsJSON: any; 




    share(event) { 
     this.bbcJSON.forEach(function(element) { 
     console.log(element.description); 
     }) 
} 

エラー:インラインテンプレート:0:0によって引き起こさ:このような未定義

+2

生データ、欲しい結果、あなたが試したものを追加してください。あなたもここで見ているかもしれません:[mcve] –

+1

いくつかのサンプルコード – KornholioBeavis

+0

あなたが混乱している場合...どのように我々は私たちの構造を見ることができないものに一致しようとすると感じると思いますか?徹底的に[尋ねる] – charlietfl

答えて

0

何かのプロパティ 'のforEach' を読み取ることができませんか?あなたがオブジェクトの配列、文字列の配列を持っていて、underscore.jsを使用していると仮定すると、

const ref = ["foo", "baz"]; 
 

 
const arr = [ 
 
    { name: "foo" }, 
 
    { name: "bar" }, 
 
    { name: "baz" } 
 
]; 
 

 
for (const obj of arr) { 
 
    if (ref.includes(obj.name)) { 
 
    console.log(`Do something with ${obj.name}...`); 
 
    } 
 
}

1

あなたの質問を解釈するために実行した例を示します。私はあなたがキーの交差点を探していると仮定:

var arObj = [ { a: "a", b: "b" }, { a: "c", b: "d" } ]; 
var compareArray = [ "c", "d" ]; 

var sharedWords = _.intersection(_.pluck(arObj, "a"), compareArray); 

あなたのタイトルの質問に答えるために - あなたは下線使用している場合はあなただけ取得する_.pluck(array_of_objects、キー)を行うことができます値の配列

関連する問題