不可变 JS - 将值提取到数组
Immutable JS - Extracting values to array
我的 Redux 存储中有一条记录,如下所示
const fruitRecord = Immutable.fromJS({
'8a6sd5v8a6s7fv5': {id: '1234', fruit: 'banana'},
'hvth1jk34v23hj2': {id: '5678', fruit: 'apple'}
});
如果我控制台记录我得到的记录
console.log(fruitRecord.toArray())
// [Array(2), Array(2)]
// 0: ["8a6sd5v8a6s7fv5", FruitRecord]
// 1: ["hvth1jk34v23hj2", FruitRecord]
我对水果 ID(本例中的 1234
和 5678
感兴趣)并将它们放在一个数组中。
这是我目前正在尝试做的事情:
const fruitName = fruitRecord.map(f => {
console.log(f.get('id')) // prints 1234 and 5678
return f.get('id')
})
console.log(fruitName)
// returns a Map
但问题是当尝试使用 fruitIds
我得到一个类型对象。我希望它是一个数组 ['1234', '5678']
如何更改我的代码以获取 ID 数组?
** 编辑 ** 将示例更改为可重现
实际上数组是对象类型。例如,如果你记录一个数组的类型,你会得到“object”
示例:
const array = [1,2,3],
console.log(typeof array); // this will print object.
我认为您应该尝试打印出“fruitIds”。它将以数组的形式出现。
另一种方法如下。
const fruitArray = [];
fruitRecord.map(f => {
console.log(f.get('id')) // prints 1234 and 5678
fruitArray.push(f.get('id')); // or frruitArray.push(f.id);
});
我的 Redux 存储中有一条记录,如下所示
const fruitRecord = Immutable.fromJS({
'8a6sd5v8a6s7fv5': {id: '1234', fruit: 'banana'},
'hvth1jk34v23hj2': {id: '5678', fruit: 'apple'}
});
如果我控制台记录我得到的记录
console.log(fruitRecord.toArray())
// [Array(2), Array(2)]
// 0: ["8a6sd5v8a6s7fv5", FruitRecord]
// 1: ["hvth1jk34v23hj2", FruitRecord]
我对水果 ID(本例中的 1234
和 5678
感兴趣)并将它们放在一个数组中。
这是我目前正在尝试做的事情:
const fruitName = fruitRecord.map(f => {
console.log(f.get('id')) // prints 1234 and 5678
return f.get('id')
})
console.log(fruitName)
// returns a Map
但问题是当尝试使用 fruitIds
我得到一个类型对象。我希望它是一个数组 ['1234', '5678']
如何更改我的代码以获取 ID 数组?
** 编辑 ** 将示例更改为可重现
实际上数组是对象类型。例如,如果你记录一个数组的类型,你会得到“object”
示例:
const array = [1,2,3],
console.log(typeof array); // this will print object.
我认为您应该尝试打印出“fruitIds”。它将以数组的形式出现。
另一种方法如下。
const fruitArray = [];
fruitRecord.map(f => {
console.log(f.get('id')) // prints 1234 and 5678
fruitArray.push(f.get('id')); // or frruitArray.push(f.id);
});