遍历不可变的 JS 记录
Loop Through Immutable JS Record
我是 ImmutableJS 库的新手,我一直在解决这个问题。我有一个名为 Options
的不可变记录对象。我希望能够遍历此记录,获取记录中每个项目的键和值。这是我的选项模型的样子:
export class Option extends Record ({
height: '10px',
width: '47px',
title: 'foo',
isAvailable: false
}) {
constructor(props) {
if (!props) {
super();
return;
}
}
}
我已经编写了以下代码来遍历我的选项记录中的每个元素,但它似乎不起作用:
var options = new Options();
options.toSeq().map((value, key) => {
console.log(key + ': ' + value);
});
我希望这会将我的选项不可变记录中的每个 key/value 对写入控制台 window。但是,它不打印任何内容,甚至似乎根本 运行 地图函数中的代码。
如果您知道这里出了什么问题,请告诉我。提前致谢! :)
使用toMap
代替toSeq
var options = new Options();
options.toMap().map((value, key) => {
console.log(key + ': ' + value);
});
我喜欢使用 Record 的 _values
、_keys
、_defaultValues
和 _iterate
属性。我认为下划线表示它们是私有的,但我找不到其他方法!
class Option extends Immutable.Record({
height: '10px',
width: '47px',
title: 'foo',
isAvailable: false
}) {}
var option = new Option();
console.log(option._keys);
// ["height", "width", "title", "isAvailable"]
console.log(option._values.toJS());
// [undefined, undefined, undefined, undefined]
console.log(option._defaultValues);
// {
// height: '10px',
// width: '47px',
// title: 'foo',
// isAvailable: false
// }
// i like this one the best
option.__iterate((item, key) => console.log(key, item));
// height, 10px
// width, 47px
// title, foo
// isAvailable, false
您可以使用 for of
:
const options = new Options();
for (const [key, value] of options) {
console.log(`${key}:${value}`);
}
我是 ImmutableJS 库的新手,我一直在解决这个问题。我有一个名为 Options
的不可变记录对象。我希望能够遍历此记录,获取记录中每个项目的键和值。这是我的选项模型的样子:
export class Option extends Record ({
height: '10px',
width: '47px',
title: 'foo',
isAvailable: false
}) {
constructor(props) {
if (!props) {
super();
return;
}
}
}
我已经编写了以下代码来遍历我的选项记录中的每个元素,但它似乎不起作用:
var options = new Options();
options.toSeq().map((value, key) => {
console.log(key + ': ' + value);
});
我希望这会将我的选项不可变记录中的每个 key/value 对写入控制台 window。但是,它不打印任何内容,甚至似乎根本 运行 地图函数中的代码。
如果您知道这里出了什么问题,请告诉我。提前致谢! :)
使用toMap
代替toSeq
var options = new Options();
options.toMap().map((value, key) => {
console.log(key + ': ' + value);
});
我喜欢使用 Record 的 _values
、_keys
、_defaultValues
和 _iterate
属性。我认为下划线表示它们是私有的,但我找不到其他方法!
class Option extends Immutable.Record({
height: '10px',
width: '47px',
title: 'foo',
isAvailable: false
}) {}
var option = new Option();
console.log(option._keys);
// ["height", "width", "title", "isAvailable"]
console.log(option._values.toJS());
// [undefined, undefined, undefined, undefined]
console.log(option._defaultValues);
// {
// height: '10px',
// width: '47px',
// title: 'foo',
// isAvailable: false
// }
// i like this one the best
option.__iterate((item, key) => console.log(key, item));
// height, 10px
// width, 47px
// title, foo
// isAvailable, false
您可以使用 for of
:
const options = new Options();
for (const [key, value] of options) {
console.log(`${key}:${value}`);
}