如何实现:fn(‘a.b.c.d.e‘, obj) // zdde ?
时间: 2024-06-12 22:03:51 浏览: 11
可以通过以下代码实现:
```javascript
function fn(str, obj) {
const arr = str.split('.');
let result = obj;
for (let i = 0; i < arr.length; i++) {
result = result[arr[i]];
}
return result;
}
const obj = {
a: {
b: {
c: {
d: {
e: 'zdde'
}
}
}
}
};
console.log(fn('a.b.c.d.e', obj)); // 输出:zdde
```
首先将字符串按照点号拆分成一个数组,然后遍历数组,逐级访问对象属性,最后返回结果。
相关问题
可以给我写一个含有js语法:a?.b?.c?.d的demo吗
当然可以!这是一个使用 ?. 运算符的 JavaScript 代码示例:
```
const obj = {
a: {
b: {
c: {
d: "Hello World"
}
}
}
};
console.log(obj?.a?.b?.c?.d); // "Hello World"
const nullObj = null;
console.log(nullObj?.a?.b?.c?.d); // undefined
```
在这个示例中,我们声明了一个对象 `obj`,它包含了一个复杂的属性嵌套结构。我们使用 ?. 运算符来访问 `obj.a.b.c.d` 属性,如果任何一个属性不存在或者为 `null` 或者 `undefined`,则不会报错,而是返回 `undefined`。
另外,我们还声明了一个 `nullObj` 变量,它的值为 `null`。当我们使用 ?. 运算符访问它的属性时,也不会报错,而是返回 `undefined`。
oo = new ObjectInputStream(new FileInputStream("d:/cheliang.txt"));
这段代码使用了 Java 标准库中的 ObjectInputStream 类和 FileInputStream 类,目的是从指定路径 "d:/cheliang.txt" 读取一个序列化的 Java 对象。
具体来说,这段代码的作用是:
1. 创建一个 FileInputStream 对象,用于读取指定路径下的文件。
2. 创建一个 ObjectInputStream 对象,用于从 FileInputStream 中读取序列化的 Java 对象。
3. 使用 readObject() 方法读取 Java 对象,返回的是 Object 类型,需要进行类型转换。
4. 关闭 ObjectInputStream 和 FileInputStream。
以下是一个示例代码:
```
import java.io.*;
public class ReadObject {
public static void main(String[] args) {
try {
// 创建 ObjectInputStream 和 FileInputStream
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d:/cheliang.txt"));
// 读取 Java 对象
Object obj = ois.readObject();
Car car = (Car)obj;
// 输出对象内容
System.out.println("Brand: " + car.getBrand());
System.out.println("Model: " + car.getModel());
System.out.println("Year: " + car.getYear());
// 关闭 ObjectInputStream 和 FileInputStream
ois.close();
} catch(IOException e) {
e.printStackTrace();
} catch(ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
这段代码会从 "d:/cheliang.txt" 中读取一个 Car 对象,并输出对象的品牌、型号和年份。你可以根据自己的需求修改读取的文件路径和读取的对象类型。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)