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