찾다

 >  Q&A  >  본문

배열 값과 동일한 객체를 제거하는 작업

<p>객체 배열과 일반 배열이 있는데, 객체 배열의 항목이 일반 배열의 항목과 동일하면 이를 제거하고 싶습니다. 이것은 나에게 혼란스럽다. </p> <p>지금까지 시도한 방법은 다음과 같습니다. </p> <p> <pre class="snippet-code-js lang-js Prettyprint-override"><code>var 국가 = [ {ChoicesID: ​​​​1, ChoicesName : '아프가니스탄'}, {ChoicesID: ​​​​2, ChoicesName : '알바니아'}, {ChoicesID: ​​​​3, ChoicesName : 'algeria'}, {ChoicesID: ​​​​4, ChoicesName : '앙골라'}, {ChoicesID: ​​​​5, ChoicesName : '아르헨티나'}, {ChoicesID: ​​​​6, ChoicesName : '아르메니아'} ]; var 답변 = ['아프가니스탄','알바니아','알제리']; var ChoicesName = new Set(countries.map(d => d.ChoicesName)); var NewCountries = [...ChoicesName, ...answer.filter(d => !ChoicesName.has(countries.find(o => o.ChoicesName === 답변)))]; console.log(NewCountries );</code></pre> </p> <p>예상되는 출력은 다음과 같습니다. </p> <pre class="brush:php;toolbar:false;">var NewCountries = [ {ChoicesID: ​​​​4, ChoicesName : '앙골라'}, {ChoicesID: ​​​​5, ChoicesName : '아르헨티나'}, {ChoicesID: ​​​​6, ChoicesName : '아르메니아'} ];</pre></p>
P粉985686557P粉985686557453일 전467

모든 응답(2)나는 대답할 것이다

  • P粉809110129

    P粉8091101292023-09-06 17:33:17

    으아악

    이렇게?

    회신하다
    0
  • P粉790187507

    P粉7901875072023-09-06 09:46:39

    배열의 요소 수를 filter 并删除如果 answer 中存在它。创建一个 answerSet 以进行 O(1) 的查找,否则可以使用 includes,但 includes 的时间复杂度为 O(m)(其中 m 是 answer 数组中的元素数量,n 是 countries 사용하세요.

    세트 사용
    O(m) + O(n).O(1) = O(n) (n>m으로 가정)

    사용 포함
    O(n).O(m) = O(nm)

    으아악

    회신하다
    0
  • 취소회신하다