packages/okam-core/src/extend/data/observable/helper.js
function removeArrayIndexAccessPath(paths, requiredMinLen) {
    let result = [];

    // using 0 stand for no limit for the processed paths length
    requiredMinLen || (requiredMinLen = 0);
    let currNum = 0;
    for (let i = 0, len = paths.length; i < len; i++) {
        let item = paths[i];
        if (typeof item === 'number' && currNum >= requiredMinLen) {
            break;
        }
        result.push(item);
        currNum++;
    }
    return result;
}
function removeArrayIndexAccessPath(paths, requiredMinLen) {
    let result = [];

    // using 0 stand for no limit for the processed paths length
    requiredMinLen || (requiredMinLen = 0);
    let currNum = 0;
    for (let i = 0, len = paths.length; i < len; i++) {
        let item = paths[i];
        if (typeof item === 'number' && currNum >= requiredMinLen) {
            break;
        }
        result.push(item);
        currNum++;
    }
    return result;
}
Remove the array index accessor.
E.g., ['a', 2, 'b', 0] => ['a']
['a', 'b', 0] => ['a', 'b']
If the `requiredMinLen` is 2,
then ['a', 2, 'b', 0] => ['a', 2]
['a', 'b', 'c', 0] => ['a', 'b', 'c']

@inner
@param {Array.<string|number>} paths the data access paths
@param {number=} requiredMinLen the minimum length of the processed paths after
array index accessor removed, by default no limit.
@return {Array}