我想在我的数组上设置字符串属性.
例如.
function readInput (arr) {
var data = db.query('something');
arr.itemType = data.itemType; // -> This
arr.push.apply(arr,data.list);
}
var myArr = [];
readInput(myArr);
我们的想法是在数组本身上存储一些元数据.
这是一个好方法吗?我这样做会造成任何问题吗?
解决方法
我同意meagar上面的评论.
向现有数据结构添加意外属性没有意义.例如,克隆数组会忽略原始数组的任何无效属性,并且不会保留“元数据”:
var arr = [1,2,3,4],newArr = []; arr.MetaSomething = "uhoh!"; newArr = arr.slice(0); newArr.MetaSomething; // undefined
因为这是一个意想不到的行为(因为它可能不是你想要发生的),所以将信息存储在一个对象中可能会更好,因为这就是你对数组的处理方式.