Code: Select all
[package]
name = "my-rust-wasm"
version = "0.1.0"
edition = "2024"
[dependencies]
wasm-bindgen = "0.2"
regex = "1"
chrono = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde-wasm-bindgen = "0.5"
serde_json = "1.0"
[lib]
crate-type = ["cdylib", "rlib"]
Code: Select all
#[wasm_bindgen]
#[derive(Serialize, Deserialize)]
pub struct Object {
key: String,
value: String,
}
#[wasm_bindgen]
pub fn find_object_by_key(arr: JsValue, target_key: &str) -> JsValue {
let objects: Vec = arr.into_serde().unwrap_or_default();
let result: Vec = objects
.into_iter()
.filter(|obj| obj.key == target_key)
.collect();
JsValue::from_serde(&result).unwrap()
}
< /code>
Und dies ist component.ts code < /p>
let objects = [
{ key: "id1", value: "Object 1" },
{ key: "id2", value: "Object 2" },
{ key: "id3", value: "Object 3" },
];
let targetKey = "id2";
console.log(wasmModule.find_object_by_key(objects, targetKey)); // Expected Output: [{ key: "id2", value: "Object 2" }]