我有以下代码:
using
override fun onBindViewHolder(view: MyViewHolder, index: Int) {
view.guideLinearLayout.removeAllViews()
/* do binding here*/
}
override fun getItemId(position: Int): Long {
return position.toLong()
}
override fun getItemViewType(position: Int): Int {
return position
}
可以很好地打印结果。但是,当尝试设置const array = [{
a: 'a',
b: 'b'
}];
console.log(...array);
const store = {
obj: ...array
}
的键时,我得到了console.log
。
不是store
的有效对象才能分配给Parsing error: Unexpected token
的{{1}}键吗?
答案 0 :(得分:5)
...
将数组散布到各个项目中。数组可以包含1个以上的元素,因此将有1个以上的RHS,这将是无效的。因此,您可以使用obj : {...array}
或obj : [...array]
const array = [{a: 'a',b: 'b'},{c: 'c', d: 'd'}];
console.log(...array);
const store = {
obj: {...array},
obj1: [...array]
};
console.log(store);
答案 1 :(得分:1)
spread语法在对象内部起作用或可迭代。在您的情况下,您需要将元素散布在数组中。
Spread语法允许将数组表达式或字符串之类的可迭代对象 扩展到期望零个或多个参数(用于函数调用)或元素(用于数组文字)的地方 < / strong>,或者将对象表达式扩展到预期零个或多个键值对(用于对象文字)的位置。
const array = [0, 1, 2]
const store = {
obj: [...array] // <-- the array is being spreded into an array.
}
console.log(store)