亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 Javascript .filter() 不返回帶有活動過濾器(== 或 ===)的任何內容

為什么 Javascript .filter() 不返回帶有活動過濾器(== 或 ===)的任何內容

蕭十郎 2023-03-18 16:22:01
import React from "react";import productsData from "./products.js";import Product from "./Product.js";function App() {  const arrrayOfImportedProducts = productsData.map((x) => (    <Product      id={x.id}      name={x.name}      price={x.price}      description={x.description}    />  ));  const array2 = arrrayOfImportedProducts.filter((y) => y.id != 1);  return <div>{array2}</div>;}export default App;當我運行代碼時,除了 .filter() 方法外,一切正常。每當我使用 == 或 === 過濾特定元素時,它都會給我一個空白屏幕。當我使用 !== 或 !=== 時,它會向我顯示 array2 的所有元素,包括不應該在其中的元素。為什么它不起作用?
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

由于您首先進行映射,然后進行過濾,因此您的過濾函數正在檢查.id反應元素的屬性。React 元素沒有 id 屬性。因此,由于 id 永遠不會匹配,您的代碼!==將始終通過,因此所有內容都包含在內。如果你使用則相反===:它永遠不會通過,所以什么都不包括在內。


您將需要切換代碼的順序:


function App() {

  const filteredProducts = arrrayOfImportedProducts.filter((y) => y.id != 1);

  const arrrayOfImportedProducts = filteredProducts.map((x) => (

    <Product

      id={x.id}

      name={x.name}

      price={x.price}

      description={x.description}

    />

  ));


  return <div>{arrrayOfImportedProducts}</div>;

}


查看完整回答
反對 回復 2023-03-18
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號